자유 게시판

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

2017.12.21 14:58

하이하루 조회:773

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

 

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

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

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

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

여기의 여러 고수님들 배치파일을 참고 하기도 하였습니다. 비슷한 문구(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 - -
32008 쪽지을 임의로 누가 다 지울수가 있나요? [15] 열린마당 1329 02-12
32007 유투브 동영상에 광고 올리는 사람들 있지 않습니까? [3] 추어탕냄비 839 02-12
32006 피싱 사기 주의 SBS뉴스 黃金犬 932 02-12
32005 2월달 윈도 정기업데이트 및 마소 빌드2018 개최 소식 [1] 에드힐스 1561 02-12
32004 신이만든 꿈의길 [2] 읜도우바보 1079 02-12
32003 DeathWing님 댓글 말씀에 반문하는 글 [8] 힝힝잇 941 02-12
32002 와... 여자 3000미터 계주.. 진짜 감동이네요.. [4] 10월4일 1669 02-11
32001 삼성노트8에 당첨되었다고 화면이 뜨는데요 [10] Nayu 3217 02-11
32000 유튜브 좋아요 좀 눌러주세요 (노골) 나린하제 764 02-11
31999 한글화 해주실분 안계실까요? [10] bleach 1347 02-11
31998 8기가 ssd 를 컴에 장착해서요 [4] 힝힝잇 1064 02-11
31997 짚신님~~~~ [4] 힝힝잇 802 02-10
31996 [알림] 윈포에요 [4] 힝힝잇 971 02-10
31995 10에서uh-7000 [1] 세븐좋아 508 02-10
31994 시스템 예약이 한개 더 생겼습니다. [2] 힝힝잇 867 02-10
31993 닉내임 win_10님 한테만 필요 한것입니다 한글화떄문에여 [1] GODDESS 824 02-10
31992 2018 북미 개봉작 최근 예고편들 윈포사랑 921 02-10
31991 간간히 스포츠 소식을 전하겟습니다 [4] 스티브오스 385 02-09
31990 다른분들이 윈도우 올리신거 보며는 [6] 힝힝잇 806 02-09
31989 인텔 스마트 연결 기술에 대해서 알고자 합니다, [1] 자연 322 02-09
XE1.11.6 Layout1.4.8