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网络编程学习笔记(九):数据库客户端 DB-API
Jun 09 Python
使用Python开发windows GUI程序入门实例
Oct 23 Python
python遍历数组的方法小结
Apr 30 Python
使用pip发布Python程序的方法步骤
Oct 11 Python
Python imageio读取视频并进行编解码详解
Dec 10 Python
appium+python adb常用命令分享
Mar 06 Python
python实现TCP文件传输
Mar 20 Python
Django admin 实现search_fields精确查询实例
Mar 30 Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 27 Python
python for循环赋值问题
Jun 03 Python
python区块链持久化和命令行接口实现简版
May 25 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版)
2006/10/09 PHP
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
PHP排序算法的复习和总结
2012/02/15 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
浅谈PHP的反射机制
2016/12/15 PHP
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
Python基础学习之常见的内建函数整理
2017/09/06 Python
matplotlib中legend位置调整解析
2017/12/19 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
Python列表推导式实现代码实例
2020/09/09 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
体育教育专业毕业生自荐信
2013/11/15 职场文书
环境工程专业个人求职信
2013/12/05 职场文书
法律专业应届生自荐信范文
2014/01/06 职场文书
青年志愿者事迹材料
2014/02/07 职场文书
交通事故和解协议书
2015/01/27 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书