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 相关文章推荐
python3简单实现微信爬虫
Apr 09 Python
Python实现优先级队列结构的方法详解
Jun 02 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
详解python tkinter教程-事件绑定
Mar 28 Python
Python进阶之@property动态属性的实现
Apr 01 Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 Python
解决Tensorflow 内存泄露问题
Feb 05 Python
Python关于__name__属性的含义和作用详解
Feb 19 Python
Python打印特殊符号及对应编码解析
May 07 Python
tensorflow pb to tflite 精度下降详解
May 25 Python
Python如何使用正则表达式爬取京东商品信息
Jun 01 Python
Django celery异步任务实现代码示例
Nov 26 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
PHP文件读写操作之文件写入代码
2011/01/13 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
微信小程序云开发实现增删改查功能
2019/05/17 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
美国创意之家:BulbHead
2017/07/12 全球购物
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
房地产公司见习自我鉴定
2014/04/28 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
杭白菊导游词
2015/02/10 职场文书
2019新员工心得体会
2019/06/25 职场文书