哈喽IT 发表于 2015-9-17 09:52:22

〈已解决〉读取网关并作出判断动作,跪求大神阿

本帖最后由 哈喽IT 于 2015-9-19 14:17 编辑

条件:
分A,B两个办公区域,
A区网关172.1.1.1 ,172.1.2.1,172.1.3.1
B区网关172.1.6.1 ,172.1.7.1,172.1.8.1

我想通过获取到 A ,B区的网关,作出判断语句

需求:
获取到A区网关 “172.1.1.1”,那么条件真,执行安装1
如果网关非 “172.1.1.1”,msgbox("xxx","区域错误无法安装")

Alam 发表于 2015-9-17 21:00:03

回复 1# 哈喽IT
有两个获取网络参数的函数,前一个" _ipconfig"适合XP系统,后一个" _ipconfig_"适合WIN7.Local $sText = _ipconfig_()
Local $sGateWay = '172.1.1.1'
If StringInStr($sText, $sGateWay) Then
        MsgBox(0, 'msg', '区域符合,可以安装。')
Else
        msgbox(16, 'msg','区域错误,无法安装!')
EndIf


Func _ipconfig()
        Local $iPID, $sText = ''
        $iPID = Run(@ComSpec & " /c ipconfig", '', @SW_HIDE, 6)
        While 1
                $sText &= StdoutRead($iPID)
                If @error Then ExitLoop
        WEnd
Return $sText
EndFunc

Func _ipconfig_()
        Local $iPID, $sText = ''
        $iPID = Run(@ComSpec & " /c ipconfig", '', @SW_HIDE, 6)
        ProcessWaitClose($iPID)
        $sText = StdoutRead($iPID)
Return $sText
EndFunc

哈喽IT 发表于 2015-9-18 08:45:01

回复 2# Alam


   谢谢您,我这就去试试。

哈喽IT 发表于 2015-9-18 09:19:04

回复 2# Alam


    你好大致框架已经OK了,

可是好像无法抓取到本机网关比对阿    一直提示的是区域错误这句

Alam 发表于 2015-9-18 20:09:50

在你的网络环境下自己调试吧。Local $sText = _ipconfig()
ConsoleWrite($sText & @CRLF)
Local $sGateWay = '172.1.1.1'
If StringInStr($sText, $sGateWay) Then
        MsgBox(0, 'msg', '区域符合,可以安装。')
Else
        msgbox(16, 'msg','区域错误,无法安装!')
EndIf

Func _ipconfig()
    Local $sFile = StringReplace(@TempDir & '\_ip.txt', '\\', '\')
        Local $sText
        RunWait(@ComSpec & " /c ipconfig > " & $sFile, '', @SW_HIDE)
        $sText = FileRead($sFile)
        FileDelete($sFile)
Return $sText
EndFunc

au3x 发表于 2015-9-18 23:38:21

试试使用正则...

哈喽IT 发表于 2015-9-19 14:19:45

回复 5# Alam


   非常感谢,OKle {:face (411):}
页: [1]
查看完整版本: 〈已解决〉读取网关并作出判断动作,跪求大神阿