AU3的官方UDF中有取外网IP的函数,我看了下是下载IP信息网站的页面,然后再用正则从页面提取IP。
不过我用了之后,发现取得的外网IP并不正确。当然,函数是正确的,关键是取IP的网站上显示的IP是错的。后来找了很多个查IP信息的网站来测试,发现竟然没有几个网站可以正确显示出我的IP,难道铁通这么牛?
某天发现华军软件页面显示的IP是正确的,于是把那个取IP信息的页面地址提取了出来,然后再结合Microsoft.XMLHttp组件重新写了下外网IP获取函数。
MsgBox(0, 0, __GetIP())
Func __GetIP() $oHTTP = ObjCreate("microsoft.xmlhttp") $oHTTP.Open("get", "", False) $oHTTP.Send("") $return = $oHTTP.responsetext;BinaryToString($oHTTP.responseBody) $IP = StringRegExp($return, '((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)', 2) If Not @error Then Return ($IP[0]) Else Return SetError(1, 0, 1) EndIf EndFunc
|
阅读(4131) | 评论(1) | 转发(0) |