본문 바로가기

Computing/Batch File Research

부팅안되는 PC의 IP Address 값 얻어오기 배치파일(ezIPSearch)

http://ezious.tistory.com/1 에서 포스팅했던 ezPath 소스를 이용한 프로그램입니다.

바트 pe로 부팅한후에 이 배치파일을 실행시키면 하드디스크의 레지스트리를 불러와서

IP ADDRESS 를 출력해주는 프로그램입니다.

소스 공개합니당 ㅋ





@echo off

rem ezIPSearch version 1.3

rem made by ezious@gmail.com

rem 기존 pc의 레지스트리 정보를 불러와서 기존의 IP를 출력함

rem 기존 pc 레지스트리 위치 찾기 ==================================================
if exist c:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=c
if exist d:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=d
if exist e:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=e
if exist f:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=f
if exist g:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=g
if exist h:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=h
if exist i:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=i
if exist j:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=j
if exist k:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=k
if exist l:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=l
if exist m:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=m
if exist n:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=n
if exist o:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=o
if exist p:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=p
if exist q:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=q
if exist r:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=r
if exist s:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=s
if exist t:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=t
if exist u:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=u
if exist v:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=v
if exist w:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=w
if exist x:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=x
if exist y:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=y
if exist z:\WINDOWS\SYSTEM32\CONFIG\system set oldpath=z


rem 찾은 레지스트리를 하이브로드함==============================================
reg load HKLM\TEMPHIVE %oldpath%:\WINDOWS\SYSTEM32\CONFIG\system

rem 유니코드 텍스트 형식으로 출력===============================================
REG EXPORT HKLM\TEMPHIVE\ControlSet001\Services %temp%\result.txt


rem 유니코드 텍스트를 일반텍스트로 변환=========================================
type %temp%\result.txt > %temp%\result2.txt


rem 변환한 레지스트리 텍스트에서 Tcpip\Parameters 를 포함한 줄만 추출 ===========
sed -n s/\\Parameters\\Tcpip/\\Parameters\\Tcpip/gp %temp%\result2.txt > %temp%\result3.txt
sed -n s/\[//gp %temp%\result3.txt > %temp%\result4.txt
sed -n s/\]//gp %temp%\result4.txt > %temp%\result5.txt


rem 정리된 텍스트파일 한줄씩 레지스트리 쿼리 함 =================================
for /f "delims=" %%i in (%temp%\result5.txt) do reg query %%i  /v  IPAddress >> %temp%\result6.txt


rem 보기 좋게 정리 ==============================================================
sed -n s/IPAddress/IPAddress/gp %temp%\result6.txt > %temp%\result7.txt
sed -n s/\\0//gp %temp%\result7.txt > %temp%\result8.txt


rem 결과화면 출력 ===============================================================
cls
@echo.
@echo ezIPSearch v1.3
@echo.
@echo 찾은 IP Address 값 =======================================
@echo.
type %temp%\result8.txt
@echo.
@echo.
@echo                                made by ezious@gmail.com

del /q %temp%\*.txt
reg unload HKLM\TEMPHIVE
set oldpath=
pause




역시 제가 실력이 모자라서 도스 명령어만 가지고는 못하겠더군요.
그래서 sed.exe 를 사용했습니다.
Unix 에서 사용할 수 있는 텍스트 편집툴인데 윈도우용이 있더군요.


아래는 ezIPSearch 소스 파일입니다.



위파일 두개는 같은곳에 존재하여야합니다.

소스에 대한 설명은 주석을 달아놓았으니 알기쉬우실듯 합니다. ^^

아래는 구동화면 입니다.