오토핫키로 IP, 서브넷마스크, 게이트웨이, DNS 변경하고, 배치파일로 만들기
이 프로그램은 관리자권한을 요구하기 때문에 실행할 때 관리자실행권한을 물어볼 수 있음.
설정이 기본적으로 관리자권한을 가지고 있으면 안물어볼 것임.
처음 실행했을 때 모습임.
IP와 GW부분은 비워놨으며, 나머지 인터페이스, 서브넷마스크 DNS는 제일 많이 쓰는 것으로 해놨음.
보조DNS는 보류임.
변경 버튼을 누르면 설정되고, 2초 뒤에 아래와 같이 netsh를 띄움
또한 Dropdownlist에서 선택된 인터페이스를 '인터페이스 정보 확인' 버튼으로 확인가능
아래와 같이 메시지박스를 띄움.
저장은 배치파일로 저장하게끔 해놨음.
자주 사용하는 것은 배치파일로 아예 생성을 해서 바탕화면에 놔두고 편하게 쓸수 있게 위함임.
저장 버튼을 누르면 위와같이 메시지박스가 뜸.
파일이 있는 폴더에 저장됨, 바탕화면이라면 바탕화면에 저장될 것임.
이것은 꼭 관리자권한으로 실행해야 실행됨.
##########################################################
@0.1v
- 기본 인터페이스 및 기능
@0.2v
- 폴더열기 기능
- 배치파일 실행시키고 나서 적용된 인터페이스 추가적으로 뜨게 추가
- 인터페이스 Dropdownlist로 선택 기능
- Dropdownlist에서 선택된 인터페이스를 '인터페이스 정보 확인' 버튼으로 확인가능
- 변경 후 ipconfig를 변경 정보를 띄웠던 것을 netsh로 띄움
- 변경 클릭시 적용후 5초 카운트가 됨.
피드백을 해줄 사람이 있을지 모르겠지만 해주면은 최대한 반영해봄.
############################
0.1v 만들어서 올렸었는데, 피드백 해주신 부분을 몇개 수정했습니다.
이 밑은 오토핫키 스크립트임. 귀찮은 사람들은 ahk 째로 받아가길 바람.
##########################################################
#SingleInstance
#NoEnv
if not A_IsAdmin
{
Run *RunAs "%A_ScriptFullPath%" ; Requires v1.0.92.01+
ExitApp
} ;관리자권한으로 실행
Gui, Add, GroupBox, x22 y9 w270 h50 , 배치파일로 저장(*.bat)
Gui, Font, s8,
Gui, Add, Button, x47 y29 w90 h20 gsave, 파일저장
Gui, Add, Button, x167 y29 w90 h20 gfolderopen, 폴더열기
Gui, Font, s9,
Gui, Add, GroupBox, x20 y69 w270 h230 , 다음 IP 주소 사용
Gui, Font, s7,
Gui, Add, Button, x169 y85 w112 h20 ginterfaceok, 인터페이스 정보 확인
Gui, Font, s9,
Gui, Add, Text, x32 y122 w120 h20 , 인터페이스 :
Gui, Add, Text, x32 y152 w120 h20 , IP :
Gui, Add, Text, x32 y182 w120 h20 , 서브넷 마스크 :
Gui, Add, Text, x32 y212 w120 h20 , 기본 게이트웨이:
Gui, Add, Text, x32 y242 w120 h20 , 기본 설정 DNS 서버 :
Gui, Add, Text, x32 y272 w120 h20 disabled , 보조 DNS 서버 :
Gui, Add, DropDownList, x170 y119 w110 h20 vinterface choose1, % GetSystemNetworkInterfaceNameList()
Gui, Add, Edit, x170 y149 w110 h20 vip,
Gui, Add, Edit, x170 y179 w110 h20 vsn, 255.255.255.0
Gui, Add, Edit, x170 y209 w110 h20 vgw,
Gui, Add, Edit, x170 y239 w110 h20 vdns, 168.126.63.1
Gui, Add, Edit, x170 y269 w110 h20 vdns2 disabled, 168.126.63.2
Gui, Add, Button, x52 y330 w60 h40 gchange vchange, 변경
Gui, Add, text, x131 y305 w40 h20 vcount,
Gui, Add, text, x139 y325 w30 h10 vrealcount,
Gui, Add, Button, x182 y330 w60 h40 gclose vclose, 종료
; Generated using SmartGUI Creator 4.0
Gui, Show, x884 y318 h390 w302, IP변경_0.2v
Return
GuiClose:
ExitApp
interfaceok:
Gui, Submit, Nohide
Runwait, %ComSpec% /c netsh interface ipv4 show config "%interface%" >tempfile.txt,,Hide
fileread, tempfile, tempfile.txt
msgbox,,%interface% 정보,%tempfile%
filedelete, tempfile.txt
return
change:
Gui, Submit, Nohide
StringReplace, interface, interface, %A_Space%, , All ;변수 문자열 공백제거
StringReplace, ip, ip, %A_Space%, , All
StringReplace, sn, sn, %A_Space%, , All
StringReplace, gw, gw, %A_Space%, , All
if (interface="" || ip =""|| sn="" || gw="")
{
msgbox,,오류, IP, 서브넷마스크 ,GW 다 입력해주세요.
}
else
{
GuiControl,Disable,close,
GuiControl,Disable,change,
GuiControl,Disable,interface,
GuiControl,Disable,ip,
GuiControl,Disable,sn,
GuiControl,Disable,gw,
GuiControl,Disable,dns,
script1=netsh interface ip set address "%interface%" static %ip% %sn% %gw% && netsh interface ip set dns "%interface%" static %dns% primary,,hide ; && netsh interface ip set dns "%interface%" static %dns2% secondary,, Hide
script2=netsh interface ipv4 show config "%interface%"
Run, %ComSpec% /c %script1%,
GuiControl,,count,적용중
GuiControl,,realcount,5초
sleep,1000
GuiControl,,realcount,4초
sleep,1000
GuiControl,,realcount,3초
sleep,1000
GuiControl,,realcount,2초
sleep,1000
GuiControl,,realcount,1초
sleep,1000
GuiControl,,count,
GuiControl,,realcount,
GuiControl,Enable,close,
GuiControl,Enable,change,
GuiControl,Enable,interface,
GuiControl,Enable,ip,
GuiControl,Enable,sn,
GuiControl,Enable,gw,
GuiControl,Enable,dns,
Run, %ComSpec% /k %script2%
}
return
save:
Gui, Submit, Nohide
StringReplace, interface, interface, %A_Space%, , All ;변수 문자열 공백제거
StringReplace, ip, ip, %A_Space%, , All
StringReplace, sn, sn, %A_Space%, , All
StringReplace, gw, gw, %A_Space%, , All
if (interface="" || ip =""|| sn="" || gw="")
{
msgbox,,오류, IP, 서브넷마스크 ,GW 다 입력해주세요.
}
else
{
script1=netsh interface ip set address "%interface%" static %ip% %sn% %gw% && netsh interface ip set dns "%interface%" static %dns% primary ;&& netsh interface ip add dns "%interface%" static %dns2% secondary
script2=netsh interface ipv4 show config "%interface%"
ifExist, %A_ScriptDir%\%ip%(관리자권한실행).bat
{
Filedelete, %A_ScriptDir%\%ip%(관리자권한실행).bat
}
FileAppend,
(
`@echo off
%script1%
cls
echo,5초 후 변경된 인터페이스 정보 출력합니다.
choice /C YN /D Y /t 1 >nul
cls
echo,4초 후 변경된 인터페이스 정보 출력합니다.
choice /C YN /D Y /t 1 >nul
cls
echo,3초 후 변경된 인터페이스 정보 출력합니다.
choice /C YN /D Y /t 1 >nul
cls
echo,2초 후 변경된 인터페이스 정보 출력합니다.
choice /C YN /D Y /t 1 >nul
cls
echo,1초 후 변경된 인터페이스 정보 출력합니다.
choice /C YN /D Y /t 1 >nul
cls
%script2%
pause > nul
),%A_ScriptDir%\%ip%(관리자권한실행).bat
msgbox, %ip%(관리자권한실행).bat 으로 저장되었습니다.
}
return
folderopen:
Run, %A_ScriptDir%
return
GetSystemNetworkInterfaceNameList()
{
FileDelete, % tmpFile := A_Temp "\_NetChange.tmp"
RunWait, %Comspec% /c netsh interface show interface >> %tmpFile%,, Hide ;get list of Lan adapters on PC
Loop, Read, %tmpFile%
{
IfInString, A_LoopReadLine, ---------
{
isValidLine := 1
continue
}
if !isValidLine or !A_LoopReadLine
continue
str := RegExReplace(A_LoopReadLine, " +", "|")
Loop, Parse, str, |
if A_index=4
list .= "|" A_LoopField
}
StringReplace, list, list, |
return list
}
close:
ExitApp
return
'오토핫키' 카테고리의 다른 글
오토핫키 학습에 유용한 티스토리들 (0) | 2017.12.04 |
---|---|
easy님 (0) | 2017.11.02 |
뿔레전쟁 (0) | 2017.10.19 |
오토핫키로 엑셀에서 내용 찾고 색 채우기 (0) | 2017.09.29 |
[오토핫키] 푸쉬불렛 Winhttp api 스크립트 (1) | 2017.08.22 |