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返回真假值(True or False)小技巧
Apr 10 Python
详解Python设计模式编程中观察者模式与策略模式的运用
Mar 02 Python
Python爬虫DOTA排行榜爬取实例(分享)
Jun 13 Python
Python决策树分类算法学习
Dec 22 Python
python计算日期之间的放假日期
Jun 05 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
在django模板中实现超链接配置
Aug 21 Python
Django配置文件代码说明
Dec 04 Python
Pytorch之view及view_as使用详解
Dec 31 Python
完美解决ARIMA模型中plot_acf画不出图的问题
Jun 04 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
Jan 06 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
Snoopy类使用小例子
2008/04/15 PHP
php类常量用法实例分析
2015/07/09 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
2020/02/01 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
Vuex的热更替如何实现
2020/06/05 Javascript
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
在tensorflow中设置保存checkpoint的最大数量实例
2020/01/21 Python
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
c/c++某大公司的两道笔试题
2014/02/02 面试题
如何查找网页漏洞
2016/06/22 面试题
运动会开幕式解说词
2014/02/05 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
学生个人评语大全
2015/01/04 职场文书
领导欢迎词范文
2015/01/26 职场文书
搞笑婚庆主持词
2015/06/29 职场文书