자유 게시판

PE부팅후 다른 디스크이 OS에서 IP값 찾기 배치 파일입니다. 도움을..

2017.12.21 14:58

하이하루 조회:780

질답에 쓸까하다가 질문보다는 소스를 고치는 내용이라 이곳에 씁니다.

 

며칠동안 이 작업을 했습니다.

간단한듯하면서도 초보인 저에게는 어렵네요.

유지보수 업을 하다보니 요런게 꼭 필요할때가 있더라구요.

기존의 다른 분꺼는 자료가 오래되어 잘 안되어서 제가 직접 짜집기 편집하였습니다.

여기의 여러 고수님들 배치파일을 참고 하기도 하였습니다. 비슷한 문구(suk님)가 보이더라도 이해해주시면 감사하겠습니다.

 

첨부에 2개의 배치파일을 올립니다.

PE용 IP_Find_PE.cmd 파일은 대부부의 OS가 Windows7 x86 환경이다 보니 잘 실행되었습니다. (PE에서 테스트)

 

IP_Find_Windows.cmd 요 파일은 고수님들 테스트 용 입니다. 그냥 C 드라이브에서 관리자 권한으로 실행하시면됩니다.

제 PC는 Windows10 RS3 64bit 환경이며 잘 테스트 되었습니다.

 

문제는.....PE용인데...

초보다 보니 배치 짜는게 어설퍼 깔끔하지 못하고 중복이 많을겁니다. 전문가의 솜씨로 고수의 숨결을 느끼고 싶네요.

저도 공부가 되고..ㅎㅎ

여러가지 PC환경을 고려하지 못하였기에...많이 부족합니다. 이부분은 고수님들의 도움을 간절히 바랍니다.

예) 64bit OS 환경이라던가.. DHCP 일 경우이거나..

 

IP.zip

 

참고로..

배치 파일 명령어로만으로는 너무 어려워 sed.exe 프로그램을 사용하였습니다.

 

이 소스는 다른 배치 파일에 포함될 예정이라 goto MainMenu로 했습니다.

 

IP_Find_PE.cmd 내용

 

@echo off
@color 1f
@cd /d %~dp0
@mode con cols=85 lines=35
setlocal enabledelayedexpansion
set ip=IPAddress
set subnet=SubnetMask
set gateway=DefaultGateway
set dns=NameServer
set Reg_Location=ControlSet001

:Find_IP
if /i "%systemdrive%"=="X:" (set W=W) else (set W=W X)
set k=0
for %%a in (C D E F G H I J K L M N O P Q R S T U V %W% Y Z) do if exist %%a:\Windows\System32\Config\SYSTEM (set /a k+=1& set drv=%%a& call :run)

if %k%==0 (
echo.
echo _____________________________________________________________________________________
echo.
echo              하드디스크 드라이브에서 Windows 를 찾지 못 했습니다.
echo ____________________________________________________________________________________
echo.
echo                  아무키나 누르시면 메인 화면으로 돌아갑니다.
echo ____________________________________________________________________________________
pause >nul
goto MainMenu
)

echo.
echo ________________________________________________________________
echo.
echo            아무키나 누르시면 메인 화면으로 돌아갑니다.
echo ________________________________________________________________
pause >nul
goto MainMenu

:run
if /i "%systemdrive%"=="%drv%:" set load=SYSTEM
if /i not "%systemdrive%"=="%drv%:" set load=load
reg load HKLM\load "%drv%:\Windows\System32\Config\SYSTEM"

for %%a in (%ip%,%subnet%,%gateway%,%dns%) do (
reg query "HKLM\%load%\%Reg_Location%\Services\Tcpip\Parameters\Interfaces" /v %%a /s >>IP_Address_All.txt
)

for %%a in (%ip%,%subnet%,%gateway%,%dns%) do (
sed -n s/%%a/%%a/gp IP_Address_All.txt >>IP_Address1.txt
)
sed /0.0.0.0/d IP_Address1.txt >IP_Address2.txt

sed -n s/%ip%/%ip%/gp IP_Address2.txt >IP_Address.txt
sed -n s/%subnet%/%subnet%/gp IP_Address2.txt >IP_Address_subnet.txt
sed -n s/%gateway%/%gateway%/gp IP_Address2.txt >IP_Address_gateway.txt
sed -n s/%dns%/%dns%/gp IP_Address2.txt >IP_Address_dns.txt

for /f "tokens=4" %%a in ('dir IP_Address2.txt /a:-d') do (
if %%a==0 goto noIP
)
for /f "tokens=3 usebackq" %%a in ("IP_Address.txt") do (
set ip=%%a
)
for /f "tokens=3 usebackq" %%a in ("IP_Address_subnet.txt") do (
set subnet=%%a
)
for /f "tokens=3 usebackq" %%a in ("IP_Address_gateway.txt") do (
set gateway=%%a
)
for /f "tokens=3 usebackq" %%a in ("IP_Address_dns.txt") do (
set dns=%%a
)

if "%ip%"=="IPAddress" goto noIP
if "%ip%"=="" goto noIP

cls
color 5f
@mode con cols=64 lines=17
echo.
echo  *작업 완료 %drv%:Windows\System32\Config\SYSTEM Registry 추출 결과
echo ________________________________________________________________
echo.
echo                IP 주소:       %ip%
echo.
echo                서브넷마스크:  %subnet%
echo.
echo                게이트웨이:    %gateway%
echo.
echo                DNS 주소:      %dns%
goto unLoad

:noIP
cls
echo _____________________________________________________________________________________
echo.
echo  * 현재 위치: HKLM\%load%\%Reg_Location%\Services\Tcpip\Parameters\Interfaces
echo _____________________________________________________________________________________
echo.
echo                            찾으시는 IP 주소가 없습니다.
echo _____________________________________________________________________________________
echo.
echo                     찾는 레지스트리의 위치값이 다를 수 있습니다.
echo.
echo                        DHCP 상태의 인터넷 환경일 수 있습니다.
echo _____________________________________________________________________________________
echo.
echo              아무키나 누르시면 다른 위치값의 레지스트리를 검색합니다.
echo _____________________________________________________________________________________
pause >nul
if /i "%Reg_Location%"=="ControlSet001"  (
set Reg_Location=CurrentControlSet
goto Find_IP
)
if /i "%Reg_Location%"=="CurrentControlSet" (
set Reg_Location=ControlSet002
goto Find_IP
)
if /i "%Reg_Location%"=="ControlSet002" (
cls
echo _____________________________________________________________________________________
echo.
echo  * 현재 위치: HKLM\%load%\%Reg_Location%\Services\Tcpip\Parameters\Interfaces
echo _____________________________________________________________________________________
echo.
echo                   레지스트리 검색결과 IP 주소를 찾을 수없습니다.
echo.
echo                        DHCP 상태의 인터넷 환경일 수 있습니다.
echo _____________________________________________________________________________________
echo.
echo                     아무키나 누르시면 메인 화면으로 돌아갑니다.
echo _____________________________________________________________________________________
pause >nul
call :unLoad
goto MainMenu
)
goto Find_IP

:unLoad
if /i not "%systemdrive%"=="%drv%:" reg unLoad HKLM\%load% 1>nul 2>nul
del IP_Address*.txt

 

 

요 결과는 제 컴에서 실행한것입니다.

 

IP찾기 결과값2.png

 

 

 

 

 

번호 제목 글쓴이 조회 등록일
[공지] 자유 게시판 이용간 유의사항 (정치, 종교, 시사 게시물 자제) [1] gooddew - -
31641 치매 선별 질문 [6] asklee 1140 12-29
31640 윈도우 로그인 암호 분실 [7] 기수 4959 12-29
31639 현대자동차 NF소나타·그랜저TG 리콜 [7] asklee 2047 12-28
31638 삶이 때로 힘들 때면 이 시를 읊어 봅니다, 삶이 그대를 속... [3] murimgasa 908 12-28
31637 마그넷 링크 오류 번거로움에 사과 드립니다 [17] 이세라 1898 12-28
31636 일본 특이한 섬 이름 [1] 이탈 1408 12-27
31635 티스토리 로그인 오류가 발생하네요. [2] 까만자전거 481 12-27
31634 무선키보드,마우스 추천부탁드리겠습니다.ㅠ [8] 뚜릅 918 12-27
31633 고수님들의 도움이 절실히 필요합니다. [8] 철이코알라 729 12-27
31632 올해도 얼마 남지 않았네요. [5] 오늘을사는 382 12-27
31631 지난 토요일 오후에 심한 콧물감기로 [6] 자수정 732 12-26
31630 AV-Comparatives 2018 백신 프로그램 설문 조사 [3] 마스크 1014 12-25
31629 KMSpico 10.2.0 Final Update 이것 사용 하시면 안됩니다 [9] Recovery 5801 12-25
31628 겨 울 이 야 기 [4] 이킁 845 12-25
31627 Mac OS ISO 파일 요청드립니다. [13] 가성비연구 1566 12-25
31626 뭐든지... 원 출처가 중요한 이유.. [4] 디폴트 1527 12-25
31625 윈도우 재설치 [6] 한스 3025 12-24
31624 크리스마스 & HNY & 해적왕 [1] 윈포사랑 1216 12-24
31623 겨 울 비 [7] 이킁 839 12-24
31622 혹시 솔향님 구글드라이브 공유한거 있으신분 [3] 빨간미소 1082 12-24
XE1.11.6 Layout1.4.8