자유 게시판

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 - -
31722 윈도우8 익스플로러 오류좀 도와주세요 [2] 김영훈 1679 11-27
31721 음.. 이맛에 정품을 구매하는군요. [12] Azre 3016 11-27
31720 마소 무료키에 궁굼하신 분들 한번읽어보세요 [14] 좋은데이 3368 11-27
31719 woa포럼이나 데이터센터 비밀번호 유출위험 [7] sp별wp 4676 11-27
31718 혹시 라즈베리파이 구하시는 분 계시면 지금 구매하세요. [12] 메리아 2808 11-27
31717 ksd님 순수버전... [1] 구디 2941 11-28
31716 조만간 구글의 레퍼런스도 중궉으로 넘어갈듯 하네요. [6] 오펜하이머 1789 11-28
31715 wmc 요걸로 실험.... [13] 구디 3532 11-28
31714 시스템 모니터링툴 어떤것을 사용하시나요? [1] 만만수 1283 11-28
31713 진짜 경기가 심각한가보네요.. [12] 내이름은빼 2740 11-28
31712 pe 뼈대파일 - 몇일전에 잠시 올라온 [4] 바람의언덕 1892 11-28
31711 windows 8 구매 취소- 환불요청했습니다. [5] 일레시아 2529 11-28
31710 정들었던 우분투를 떠나기로 했습니다. [2] 덧글놀이족 1955 11-28
31709 백업사이트가 우우 죽순 생기는군요. [4] 소녀시대 2814 11-28
31708 어허 결국..왜이리 꼬여있는 사람들이 많은지.. [3] 우이잉 2052 11-28
31707 더이상 저를 찾지마세요... [12] 잠곰탱이 3328 11-28
31706 인간성 드러내는 분 있네요ㅋㅋ; [15] 우이잉 3174 11-28
31705 비스타가 처음 나올때 윈도우8만큼 인기가 대단했나요? [9] 벌꿀바나나 2122 11-28
31704 핸드폰 관련 종사하시는분 유심히 봐주세요. [13] 따루아빠 3246 11-28
31703 ksd 님 부탁드립니다... [6] 구디 3192 11-29
XE1.11.6 Layout1.4.8