Chinaunix首页 | 论坛 | 博客
  • 博客访问: 181050
  • 博文数量: 14
  • 博客积分: 1403
  • 博客等级: 上尉
  • 技术积分: 192
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-18 16:36
文章分类

全部博文(14)

文章存档

2011年(5)

2010年(9)

分类: WINDOWS

2010-05-18 10:17:45

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


阅读(4105) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-05-09 15:19:26

感脚和VBS蛮像的,不过咧正则写得蛮丑。