python获取外网ip地址的方法总结


Posted in Python onJuly 02, 2015

本文实例总结了python获取外网ip地址的方法。分享给大家供大家参考。具体如下:

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

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]) );

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python使用chardet判断字符编码
May 09 Python
Python实现KNN邻近算法
Jan 28 Python
python3+mysql查询数据并通过邮件群发excel附件
Feb 24 Python
对python内置map和six.moves.map的区别详解
Dec 19 Python
django富文本编辑器的实现示例
Apr 10 Python
Python生成MD5值的两种方法实例分析
Apr 26 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
Jun 25 Python
解决Django连接db遇到的问题
Aug 29 Python
Python龙贝格法求积分实例
Feb 29 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
Python基于数列实现购物车程序过程详解
Jun 09 Python
python pillow库的基础使用教程
Jan 13 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
Jul 02 #Python
python脚本内运行linux命令的方法
Jul 02 #Python
举例区分Python中的浅复制与深复制
Jul 02 #Python
Python多进程机制实例详解
Jul 02 #Python
Python回调函数用法实例详解
Jul 02 #Python
在Python中marshal对象序列化的相关知识
Jul 01 #Python
python保存字符串到文件的方法
Jul 01 #Python
You might like
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
Python Paramiko模块的安装与使用详解
2016/11/18 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
python之验证码生成(gvcode与captcha)
2019/01/02 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
python列表使用实现名字管理系统
2019/01/30 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
关于运动会的口号
2014/06/07 职场文书
建筑管理专业求职信
2014/07/28 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
罚款通知怎么写
2015/04/22 职场文书
感恩老师主题班会
2015/08/12 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS