python获取外网ip地址的方法总结
本文实例总结了python获取外网ip地址的方法。分享给大家供大家参考。具体如下:
一、利用脚本引擎库直接获取
importconsole; importweb.script importinet.http; varjsVm=web.script("JavaScript") jsVm.AddCode(inet.http().get("http://fw.qq.com/ipaddress")) varipAddr=jsVm.CodeObject.IPData[0]; console.log("您的外网IP地址:",ipAddr)
二、http库,模式匹配获取
importinet.http; getIp=function(){ varhttp=inet.http() http.flags=0x80000000/*_INTERNET_FLAG_RELOAD强制文件从服务器下载不是缓存*/ |0x4000000/*_INTERNET_FLAG_DONT_CACHE*不缓存数据*/ varstr=http.get("http://fw.qq.com/ipaddress") returnstr?string.match(str,'"(.+?)"') } io.open() io.print(getIp())
三、whttp库,模式匹配获取
//获取IP importinet.whttp; getIp=function(){ varwhttp=inet.whttp() varstr=whttp.get("http://www.ip138.com/ip2city.asp?r="+tonumber(time.now())) whttp.close() returnstr?string.match(str,"\[(.*?)\]"); } io.open() io.print(getIp())
四、API方法
io.open(); varIPHLPAPI=raw.loadDll("IPHLPAPI.DLL") varGetIpAddrTable=IPHLPAPI.api("GetIpAddrTable","int(struct&pIpAddrTable,int&pdwSize,intborder)") IPInfo=class{ intdwAddr; intdwIndex; intdwMask; intdwBCastAddr; intdwReasmSize; wordunused1; wordunused2 } varPMIB_IPADDRTABLE=class{ intdEntrys; structmIPInfo[255]={..IPInfo()}; } varipStruct=PMIB_IPADDRTABLE(); varre,ipStruct,ret=GetIpAddrTable(ipStruct,0,1); varre,ipStruct,ret=GetIpAddrTable(ipStruct,re,0); varipData=ipStruct.mIPInfo[ipStruct.dEntrys-1].dwAddr; varip=raw.convert({intn=ipData},{BYTEdata[4]}); io.print(string.format("%d.%d.%d.%d",ip.data[1],ip.data[2],ip.data[3],ip.data[4]));
希望本文所述对大家的Python程序设计有所帮助。