자유 게시판

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

2017.12.21 14:58

하이하루 조회:758

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

 

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

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

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

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

여기의 여러 고수님들 배치파일을 참고 하기도 하였습니다. 비슷한 문구(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 - -
31721 대만영화 七匹狼 (늑대7 - 1989년) [2] 쟈드 1260 12-30
31720 유튜브 음질 궁금한거 한가지.. [5] 코나 1164 12-30
31719 제가 닌텐도 스위치를 살려고 맘먹고 있었는데 [5] 심돌이 901 12-30
31718 윈도우10 EDU (에듀케이션 버전) [3] 율이아빠 2197 12-30
31717 새해 복 많이 받으세요. [9] -Cosmos- 1239 12-30
31716 결국 사용자 환경의 문제인 것 일까요? [3] 까만자전거 563 12-30
31715 혹시 있으신분 등려군 鄧麗君 GREATEST HITS? [9] 소주 1531 12-30
31714 새해 복 많이 받으세요, [4] 자연 276 12-30
31713 납땜(인두기) 고수님들..질문 드립니다. [13] 신사맨 1555 12-29
31712 연말잘들보네세요... [1] 분해조립 294 12-29
31711 치매 선별 질문 [6] asklee 1132 12-29
31710 윈도우 로그인 암호 분실 [7] 기수 4929 12-29
31709 현대자동차 NF소나타·그랜저TG 리콜 [7] asklee 2025 12-28
31708 삶이 때로 힘들 때면 이 시를 읊어 봅니다, 삶이 그대를 속... [3] murimgasa 897 12-28
31707 마그넷 링크 오류 번거로움에 사과 드립니다 [17] 이세라 1890 12-28
31706 일본 특이한 섬 이름 [1] 이탈 1402 12-27
31705 티스토리 로그인 오류가 발생하네요. [2] 까만자전거 476 12-27
31704 무선키보드,마우스 추천부탁드리겠습니다.ㅠ [8] 뚜릅 911 12-27
31703 고수님들의 도움이 절실히 필요합니다. [8] 철이코알라 722 12-27
31702 올해도 얼마 남지 않았네요. [5] 오늘을사는 359 12-27
XE1.11.6 Layout1.4.8