python获取外网IP

本文介绍了四种不同的方法来获取设备的外网IP地址:直接使用脚本引擎库获取、通过HTTP库结合模式匹配获取、利用WHTTP库结合模式匹配获取以及通过API方法获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、利用脚本引擎库直接获取

import console;
import web.script
import inet.http;
var jsVm = web.script(“JavaScript”)
jsVm.AddCode( inet.http().get(“http://fw.qq.com/ipaddress“) )
var ipAddr = jsVm.CodeObject.IPData[0];
console.log( “您的外网IP地址:”,ipAddr )

二、http库,模式匹配获取

import inet.http;
getIp = function(){
var http = inet.http()
http.flags = 0x80000000/_INTERNET_FLAG_RELOAD强制文件从服务器下载不是缓存/
| 0x4000000/_INTERNET_FLAG_DONT_CACHE不缓存数据*/
var str = http.get(“http://fw.qq.com/ipaddress“)
return str?string.match(str,’”(.+?)”’)
}
io.open()
io.print(getIp())

三、whttp库,模式匹配获取

//获取IP
import inet.whttp;
getIp = function(){
var whttp = inet.whttp()
var str = whttp.get(“http://www.ip138.com/ip2city.asp? r=”+tonumber(time.now()))
whttp.close()
return str?string.match(str,”[(.*?)]”);

}
io.open()
io.print(getIp())

四、API方法

io.open();
var IPHLPAPI = raw.loadDll(“IPHLPAPI.DLL”)
var GetIpAddrTable = IPHLPAPI.api(“GetIpAddrTable”,”int(struct &pIpAddrTable,int &pdwSize,int border)”)
IPInfo = class {
int dwAddr;
int dwIndex;
int dwMask;
int dwBCastAddr;
int dwReasmSize;
word unused1;
word unused2
}
var PMIB_IPADDRTABLE = class {
int dEntrys;
struct mIPInfo[255] = { ..IPInfo() };
}
var ipStruct = PMIB_IPADDRTABLE();
var re, ipStruct, ret = GetIpAddrTable(ipStruct, 0, 1);
var re, ipStruct, ret = GetIpAddrTable(ipStruct, re, 0);
var ipData = ipStruct.mIPInfo[ipStruct.dEntrys - 1].dwAddr;
var ip = raw.convert({ int n = ipData }, { BYTE data[4] });
io.print( string.format(“%d.%d.%d.%d”, ip.data[1], ip.data[2], ip.data[3], ip.data[4]) );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值