找回密码
 加入
搜索
楼主: 流浪628

[原创] 最完整的IP修改工具+经典版apache

 火... [复制链接]
 楼主| 发表于 2011-12-1 11:37:23 | 显示全部楼层
回复 15# 兔子先生
这个本来有的,我把哪个给取消了,因为我们只要个这固定IP。其它的都不能给上面添的。只要改一下标签。就可以改回去的。
发表于 2011-12-1 12:09:39 | 显示全部楼层
回复 11# 流浪628


    我也修改了Dns,是我自己用的。呵呵
 楼主| 发表于 2011-12-1 13:18:33 | 显示全部楼层
回复 17# y1751

哦,呵呵,这个有一部分是别人给我提出的思路,他说我这取之于民要用之于民,所以才让我把这个发出来,你要是早发出来,我也就不会花两天时间,去调试哪个错误了。
发表于 2011-12-1 15:07:37 | 显示全部楼层
看在我们机器配置相近的情况下支持一下。
发表于 2011-12-1 16:51:24 | 显示全部楼层
回复 10# 流浪628


    这个几多年前大大们发烂了的,你现在说这个小功能它值?
 楼主| 发表于 2011-12-1 18:25:25 | 显示全部楼层
回复 20# 6FINGERS


   几年前是发烂了,可是到现在官方里面的DNS改值也只能改一个。
发表于 2011-12-2 20:12:03 | 显示全部楼层
楼主的代码还是有些问题的,我来帮你开放,让更多的人查阅。
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#Include <Date.au3>
;#Include <ACN_NET.au3>
#Include <WinAPI.au3>
#include <GuiStatusBar.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <Array.au3>
#Region ### START Koda GUI section ### Form=E:\作品\Form2-1.kxf
Global Const $NetworkAdapterInfo = _NetworkAdapterInfo()  ;获得网卡信息.
Global Const $ScriptDir=@ScriptDir & '\'& "ip.ini"
Global Const $OSVersion= @OSVersion
MsgBox("1","sadf",$OSVersion)
;Global Const $ScriptDir1=@ScriptDir & '\'& "ip.ini")
Global $hIcons[2]
$Form2_1 = GUICreate("IP地址修改器", 709, 455, 271, 152)
$Group1 = GUICtrlCreateGroup("自动获取", 32, 8, 609, 441)
$Label1 = GUICtrlCreateLabel("网卡选择", 78, 32, 52, 17)
$Label2 = GUICtrlCreateLabel("计算机名", 78, 88, 52, 17)
$Input1 = GUICtrlCreateLabel("Input1", 152, 88, 329, 21)
$Label3 = GUICtrlCreateLabel("IP地址", 78, 144, 38, 17)
$Combo1 = GUICtrlCreateCombo("选择的网卡", 160, 24, 329, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))  ;选择的网卡
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER+$GUI_DOCKHEIGHT)
$Input2 = GUICtrlCreateLabel("IP地址", 152, 144, 169, 21)
$Label4 = GUICtrlCreateLabel("网关地址", 78, 192, 52, 17)
$Input3 = GUICtrlCreateLabel("网关", 152, 192, 169, 21)
$Label5 = GUICtrlCreateLabel("首选DNS", 78, 248, 51, 17)
$Input4 = GUICtrlCreateLabel("DNS", 152, 248, 169, 21)
$Label6 = GUICtrlCreateLabel("子网掩码", 336, 144, 52, 17)
$Input5 = GUICtrlCreateLabel("子网掩码", 392, 144, 169, 21)
$Label7 = GUICtrlCreateLabel("备用DNS", 336, 248, 51, 17)
$Input6 = GUICtrlCreateLabel("DNS", 392, 248, 169, 21)
$Button1 =GUICtrlCreateButton("执行", 208, 368, 113, 57)
$Button2 = GUICtrlCreateButton("退出", 368, 368, 113, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;在GUI上创建一个分组(Group)控件
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$hStatus = _GUICtrlStatusBar_Create ($Form2_1)  ;If using GUICtrlCreateMenu then use _GUICtrlStatusBar_Create after GUICtrlCreateMenu
Global $aParts[2] = [350, -1]
_GUICtrlStatusBar_SetParts ($hStatus, $aParts)
_GUICtrlStatusBar_SetText ($hStatus, " IP 地址修改器内部专用版本",0)
_GUICtrlStatusBar_SetText ($hStatus, " 酒店事业部", 1)
_GUICtrlStatusBar_SetIcon ($hStatus, 0, -19, "shell32.dll")
_GUICtrlStatusBar_SetIcon ($hStatus, 1, 221, "shell32.dll")
$hIcons[0] = _WinAPI_LoadShell32Icon (-19)
$hIcons[1] = _WinAPI_LoadShell32Icon (221)
_GUICtrlStatusBar_SetIcon ($hStatus, 0, $hIcons[0])
_GUICtrlStatusBar_SetIcon ($hStatus, 1, $hIcons[1])

;_ArrayDisplay($NetworkAdapterInfo)

;保存IP地址和往输入框里填写固定IP。
For $i=1 To $NetworkAdapterInfo[0][0]
        GUICtrlSetData($Combo1,$NetworkAdapterInfo[1][3],$NetworkAdapterInfo[1][3])                
        ;获取IP、子网掩码、网关并保存在IP.INI文件里,并将要改的IP地址显示在输入框里。
        If $NetworkAdapterInfo[$i][0] = 0 Then
                        GUICtrlSetData($Combo1,"没有找到可用的网卡信息^_^")
                Else
                        If $NetworkAdapterInfo[1][6] = True Then
                                IniWrite ( $ScriptDir, "DHCP", "dhcp值", "True")
                                GUICtrlSetData($Input1,@ComputerName)
                                GUICtrlSetData($Input2,"192.168.1.82")
                                GUICtrlSetData($Input3,"192.168.1.1")
                                GUICtrlSetData($Input4,"202.106.0.20")
                                GUICtrlSetData($Input5,"255.255.255.0")
                                GUICtrlSetData($Input6,"210.82.5.1")
                                MsgBox("1","wert","DHCP状态已保存")
                        EndIf
                        If $NetworkAdapterInfo[1][6] = False then
                                IniWrite ( $ScriptDir, "DHCP", "dhcp值", "False")
                                IniWrite ( $ScriptDir, $NetworkAdapterInfo[1][3], "ip地址", $NetworkAdapterInfo[1][7])
                                IniWrite ( $ScriptDir, $NetworkAdapterInfo[1][3], "子网掩码",$NetworkAdapterInfo[1][8])                                      
                                IniWrite ( $ScriptDir, $NetworkAdapterInfo[1][3], "网关地址",$NetworkAdapterInfo[1][9])
                                IniWrite ( $ScriptDir, $NetworkAdapterInfo[1][3], "首选DNS",$NetworkAdapterInfo[1][10])
                                IniWrite ( $ScriptDir, $NetworkAdapterInfo[1][3], "备用DNS",$NetworkAdapterInfo[1][11])
                        
                                GUICtrlSetData($Input1,@ComputerName)
                                GUICtrlSetData($Input2,"192.168.1.82")
                                GUICtrlSetData($Input3,"192.168.1.1")
                                GUICtrlSetData($Input4,"202.106.0.20")
                                GUICtrlSetData($Input5,"255.255.255.0")
                                GUICtrlSetData($Input6,"210.82.5.1")
                                MsgBox("1","wert","ip地址:"&$NetworkAdapterInfo[1][7]&@CRLF&"子网掩码:"&$NetworkAdapterInfo[1][8]&@CRLF&"网关地址:"&$NetworkAdapterInfo[1][9]&@CRLF&"首选DNS:"&$NetworkAdapterInfo[1][10]&@CRLF&"备用DNS:"&$NetworkAdapterInfo[1][11]&@CRLF&"都已保存")
                     EndIf
        EndIf
Next
;捕获IP和修改IP,和恢复原来的IP地址。
While 1
        $nMsg = GUIGetMsg() ;捕获窗口消息
        Switch $nMsg
                Case $GUI_EVENT_CLOSE  ;对话框(窗口)正被关闭(相关按钮被点击或系统菜单项被选中).
                        Exit
                                Case $Button1 ;更改IP地址
                                If GUICtrlRead($Combo1) = "本地连接" Then
                                        $ConName = $NetworkAdapterInfo[1][3]
                                                                                MsgBox("1","a",$ConName)
                                        $IpADD = GUICtrlRead($Input2)
                                        $GateWay = GUICtrlRead($Input3)
                                        $ConDNS2 = GUICtrlRead($Input6)
                                        $SubMask = GUICtrlRead($Input5)
                                        $ConDNS1 = GUICtrlRead($Input4)
                                                                                MsgBox("1","a","")
                                                                                MsgBox("1","wert","ip地址:"&$IpADD&@CRLF&"子网掩码:"&$SubMask&@CRLF&"网关地址:"&$GateWay&@CRLF&"首选DNS:"&$ConDNS1&@CRLF&"备用DNS:"&$ConDNS2&@CRLF&"都已更改")
                                                                                If $OSVersion = "WIN_XP" Then
                                                                                      _CMD_SetLocalIP_XP($ConName,$IpADD,$SubMask,$GateWay,$ConDNS1,$ConDNS2)
                                                                           EndIf
                                        If  $OSVersion = "WIN_7" Then
                                                                                 _CMD_SetLocalIP_WIN7($ConName,$IpADD,$SubMask,$GateWay,$ConDNS1,$ConDNS2)
                                                                                 EndIf
                                                                   Exit
                               EndIf
                                Case $Button2
                                 If GUICtrlRead($Combo1) = "本地连接" Then
                                                                         MsgBox(1,"",IniRead($ScriptDir, "DHCP", "dhcp值", "NotFound"))
                                                                             If IniRead($ScriptDir, "DHCP", "dhcp值", " ") = "True" Then
                                                                                                MsgBox("1","ss","asdfasdfasdfasdfasfd")
                                                                                                _DHCP_IP_SetLocalIP()
                                                                                                _DHCP_DNS_SetLocalIP()
                                                                         EndIf         
                                                                             If IniRead($ScriptDir, "DHCP", "dhcp值", " ") = "False" Then 
                                                                                        
                                                                                                GUICtrlSetData($Input1,@ComputerName)   ;修改指定控件的数据.
                                                                                                GUICtrlSetData($Input2,IniRead($ScriptDir, "本地连接", "ip地址", "NotFound"))        
                                                                                                GUICtrlSetData($Input3,IniRead($ScriptDir, "本地连接", "网关地址", "NotFound"))
                                                                                                GUICtrlSetData($Input4,IniRead($ScriptDir, "本地连接", "首选DNS", "NotFound"))                                                                                
                                                                                                GUICtrlSetData($Input5,IniRead($ScriptDir, "本地连接", "子网掩码", "NotFound"))
                                                                                                GUICtrlSetData($Input6,IniRead($ScriptDir, "本地连接", "备用DNS", "NotFound"))
                                                                                                $ConName = $NetworkAdapterInfo[1][3]
                                                                                                $IpADD = GUICtrlRead($Input2)
                                                                                                $GateWay = GUICtrlRead($Input3)
                                                                                                $ConDNS1 = GUICtrlRead($Input4)
                                                                                                $SubMask = GUICtrlRead($Input5)
                                                                                                $ConDNS2 = GUICtrlRead($Input6)
                                                                                                 MsgBox("1","sss","asdfasdfasdfasdfasfd")
                                                                                                MsgBox("1","wert","ip地址:"&$IpADD&@CRLF&"子网掩码:"&$SubMask&@CRLF&"网关地址:"&$GateWay&@CRLF&"首选DNS:"&$ConDNS1&@CRLF&"备用DNS:"&$ConDNS2&@CRLF&"都已还原初始状态")
                                                                                                        If $OSVersion = "WIN_XP" Then
                                                                                      _CMD_SetLocalIP_XP($ConName,$IpADD,$SubMask,$GateWay,$ConDNS1,$ConDNS2)
                                                                                        EndIf
                                                    If  $OSVersion = "WIN_7" Then
                                                                                 _CMD_SetLocalIP_WIN7($ConName,$IpADD,$SubMask,$GateWay,$ConDNS1,$ConDNS2)
                                                    EndIf
                                                                                                ;_CMD_SetLocalIP($ConName,$IpADD,$SubMask,$GateWay,$ConDNS1,$ConDNS2)  
                                                                                    Exit
                                                                                EndIf
                                                                EndIf
                             
        EndSwitch
        WEnd
Func _NetworkAdapterInfo()
        Local $colItems1 = ""
        Local $objWMIService
        Local $NetworkAdapterID = 0
        Local $NetworkAdapterName = ""
        Local $NetworkAdapterGateway = ""
        Local $NetworkAdapterHostName = ""
        Local $NetworkAdapterIPaddress = ""
        Local $NetworkAdapterDNS1 = ""
        Local $NetworkAdapterDNS2 = ""
        Local $NetworkAdapterSubnet = ""
        Local $NetworkAdapterMAC = ""
        Local $NetworkAdapterNetConnectionID = ""
        Local $NetworkAdapterNetConnectionStatus = ""
        Local $NetworkAdapterInfo[10][12] ;最高10块网卡.
        $NetworkAdapterInfo[0][0] = 0
        $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
        $colItems1 = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionStatus >0 ', "WQL", 0x30)
        If IsObj($colItems1) Then
                For $objItem In $colItems1
                        $NetworkAdapterName = $objItem.Description
                        If $NetworkAdapterName="" Then ContinueLoop
                        If StringInStr ($NetworkAdapterName,"vmware")=True Then ContinueLoop
                        $NetworkAdapterNetConnectionStatus = $objItem.NetConnectionStatus
                        $NetworkAdapterNetConnectionID = $objItem.NetConnectionID
                        If StringInStr ($NetworkAdapterNetConnectionID,"无线")=True Then ContinueLoop
                        $NetworkAdapterIndex = $objItem.Index
                        $NetworkAdapterMAC = $objItem.MACAddress
                        $NetworkAdapterID += 1
                        $NetworkAdapterInfo[0][0] = $NetworkAdapterID
                        $NetworkAdapterInfo[$NetworkAdapterID][0] = $NetworkAdapterID
                        $NetworkAdapterInfo[$NetworkAdapterID][1] = $NetworkAdapterName
                        $NetworkAdapterInfo[$NetworkAdapterID][2] = $NetworkAdapterNetConnectionStatus ;反回的值是2表示在线,7表示不在线。
                        $NetworkAdapterInfo[$NetworkAdapterID][3] = $NetworkAdapterNetConnectionID
                        MsgBox("1","3",$NetworkAdapterInfo[$NetworkAdapterID][3])
                        $NetworkAdapterInfo[$NetworkAdapterID][4] = $NetworkAdapterMAC
                        $NetworkAdapterInfo[$NetworkAdapterID][5] = $NetworkAdapterIndex
                        Local $colItems2 = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index = "'& $NetworkAdapterIndex &'" ', "WQL", 0x30)        
                        If IsObj($colItems2) Then
                                For $objItem2 In $colItems2
                                        $NetworkAdapterIPaddress = $objItem2.IPAddress(0)
                                        $NetworkAdapterDHCPEnabled = $objItem2.DHCPEnabled
                                        $NetworkAdapterIPSubnet = $objItem2.IPSubnet(0)
                                        $NetworkAdapterDefaultIPGateway = $objItem2.DefaultIPGateway(0)
                                        $NetworkAdapterDNS1 = $objItem2.DNSServerSearchOrder(0)
                                        $NetworkAdapterInfo[$NetworkAdapterID][6] = $NetworkAdapterDHCPEnabled
                                
                                        $NetworkAdapterInfo[$NetworkAdapterID][7] = $NetworkAdapterIPaddress
                                        $NetworkAdapterInfo[$NetworkAdapterID][8] = $NetworkAdapterIPSubnet
                                        $NetworkAdapterInfo[$NetworkAdapterID][9] = $NetworkAdapterDefaultIPGateway
                                        $NetworkAdapterInfo[$NetworkAdapterID][10] = $NetworkAdapterDNS1
                                        If UBound($objItem2.DNSServerSearchOrder)>1 Then
                                                $NetworkAdapterDNS2 = $objItem2.DNSServerSearchOrder(1)
                                                $NetworkAdapterInfo[$NetworkAdapterID][11] = $NetworkAdapterDNS2
                                        EndIf                                        
                                Next
                        EndIf
                Next
        Else
                Return $NetworkAdapterInfo
        EndIf
                Return $NetworkAdapterInfo
_ArrayDisplay($NetworkAdapterInfo)


EndFunc   ;==>_NetworkAdapterInfo
Func _CMD_SetLocalIP_WIN7($ConName, $IpADD, $SubMask, $GateWay, $ConDNS1,$ConDNS2)
        If $SubMask <> "" Then $SubMask = "255.255.255.0"
        If $ConName <> "" And $IpADD <> "" Then
                        RunWait(@ComSpec & ' /C netsh -c interface ip set address ' & '"' & $ConName & '"' & ' static ' & $IpADD & " " & $SubMask & " " & $GateWay, "", @SW_HIDE)
        EndIf
        If $ConDNS1 <> "" Then
                        RunWait(@ComSpec & ' /C netsh -c interface ip set dns ' & '"' & $ConName & '"' & ' static ' & $ConDNS1 & ' primary validate=no', "", @SW_HIDE)
        EndIf
        If $ConDNS2 <> "" Then
                        RunWait(@ComSpec & ' /C netsh -c interface ip add dns ' & '"' & $ConName & '" ' & $ConDNS2 & ' validate=no', "", @SW_HIDE)
        EndIf
EndFunc   ;==>_CMD_SetLocalIP

Func _CMD_SetLocalIP_XP($ConName, $IpADD, $SubMask, $GateWay, $ConDNS1,$ConDNS2)
        If $SubMask <> "" Then $SubMask = "255.255.255.0"
        If $ConName <> "" And $IpADD <> "" Then
                    RunWait(@ComSpec & ' /C netsh interface ip set address ' & '"' & $ConName & '"' & ' static ' & $IpADD & " " & $SubMask & " " & $GateWay & " " & ' none ',"", @SW_HIDE)
        EndIf
        If $ConDNS1 <> "" Then
                RunWait(@ComSpec & ' /C netsh  interface ip set dns ' & '"' & $ConName & '"' & ' static ' & $ConDNS1 & ' primary', "", @SW_HIDE)
        EndIf
        If $ConDNS2 <> "" Then
                RunWait(@ComSpec & ' /C netsh  interface ip add dns ' & '"' & $ConName & '" ' & $ConDNS2,"", @SW_HIDE)
        EndIf
EndFunc   ;==>_CMD_SetLocalIP

Func _DHCP_IP_SetLocalIP()
        RunWait(@ComSpec & ' /C netsh interface ip set address ' & '"' & $NetworkAdapterInfo[1][3] & '"' & ' source=dhcp ', "", @SW_HIDE)
EndFunc
Func _DHCP_DNS_SetLocalIP()
        RunWait(@ComSpec & ' /C netsh interface ip set dns ' & '"' & $NetworkAdapterInfo[1][3] & '"' & ' source=dhcp ', "", @SW_HIDE)

EndFunc

发表于 2011-12-2 20:38:03 | 显示全部楼层
楼主还是很辛苦的,不过就是少了点共享精神。谢谢lz的辛苦。
有些功能没什么用处,比如多网卡。要用工具肯定是要批量的。少数几个还不如手工改。所以我做的加上了根据mac修改ip。但是我做的界面实在不好看,呵呵
发表于 2011-12-5 22:51:39 | 显示全部楼层
鄙视这些没有任何介绍文件,看一眼就收费的楼主们!
 楼主| 发表于 2011-12-7 17:40:45 | 显示全部楼层
[img][/img]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2011-12-7 17:42:12 | 显示全部楼层
改到这一步,就算是最后改完了。
 楼主| 发表于 2011-12-7 17:44:11 | 显示全部楼层
回复 22# haijie1223


    哈哈,哪段代码,我都修改了N次了。
 楼主| 发表于 2011-12-9 10:04:35 | 显示全部楼层
回复 15# 兔子先生


  我写这个是给公司写的,又不是专门写来玩的,当然怎么好用简洁怎么来呀!
发表于 2011-12-13 08:41:47 | 显示全部楼层
我去了 然后还不是代码,服了
发表于 2011-12-14 07:46:48 | 显示全部楼层
看看除了常用的功能外,还多了什么,怎么个完整法。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-20 09:26 , Processed in 0.080946 second(s), 16 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表