자유 게시판

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

2017.12.21 14:58

하이하루 조회:774

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

 

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

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

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

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

여기의 여러 고수님들 배치파일을 참고 하기도 하였습니다. 비슷한 문구(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 - -
31710 골 목 길 [3] 이킁 662 01-07
31709 스테이션 여기 올렸어요.받아가세요. [140] 자수정 2560 01-07
31708 인텔도 들었다놨다 한 구글… CPU 결함 찾아내고 해결책도 제시 [1] 익덕이 1072 01-07
31707 아래에 이어 프로64 Workstation [6] 자수정 1451 01-06
31706 gtx1080 가격 내려가려면 오래 걸리겠죠? [3] 신사맨 1022 01-06
31705 primo ramdisk 5.7.0 막혓나요? [13] 코나 2038 01-06
31704 대부분의 분들이 이번 사태의 의미를 잘못 이해하시는듯합니다 [23] DarknessAn 3947 01-06
31703 무료 업그레이드 진짜 종료될 듯 합니다 [8] suk 2647 01-06
31702 형님들 1151메인보드에 맞는 [1] 영필이 611 01-06
31701 요즘 이런저런 하드웨어를 다루다보면.. 분노가 치밀어 오... [4] 이탈 1207 01-05
31700 인텔 멜트다운 보안 이슈 OS별 보안 업데이트 다운로드 주소 [5] Rixs 1830 01-05
31699 헐~~ 이번 업데이트(보안패치) 후 좋은 점 [1] 박삿갓 1607 01-05
31698 인텔 CPU 보안패치 후 발견한 문제점 [2] 가성비연구 1202 01-05
31697 형님들 [1] 영필이 697 01-05
31696 이번 인텔 cpu 패치하고 난 후 SSD 입출력 속도 [9] asklee 1397 01-05
31695 이번 cpu 패치후 s830 ssd 상태 비교 [2] 카시니 789 01-05
31694 1세대 린필드는 무풍지대 인가요 [4] 국민우선 1005 01-05
31693 Relaxing Music 소개 _ Stress해소 음악 murimgasa 218 01-05
31692 미 정부 "보안 취약성 해소 방법은 하드웨어 교체뿐&q... [2] 아빌로 826 01-05
31691 인텔 패치 롤백 했습니다 [6] 이세라 1611 01-05
XE1.11.6 Layout1.4.8