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程序设计有所帮助。