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操作Mysql实例代码教程在线版(查询手册)
Feb 18 Python
Python使用正则匹配实现抓图代码分享
Apr 02 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
May 15 Python
python使用urllib2提交http post请求的方法
May 26 Python
Python算法应用实战之栈详解
Feb 04 Python
代码讲解Python对Windows服务进行监控
Feb 11 Python
python实现聚类算法原理
Feb 12 Python
python3.5绘制随机漫步图
Aug 27 Python
浅谈pycharm的xmx和xms设置方法
Dec 03 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
使用Python实现批量ping操作方法
May 06 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 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
提问的智慧
2006/10/09 PHP
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
jQuery拖拽 & 弹出层 介绍与示例
2013/12/27 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
深入理解setTimeout函数和setInterval函数
2016/05/20 Javascript
详解Vue方法与事件
2017/03/09 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
Python中用Decorator来简化元编程的教程
2015/04/13 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
python将字符串转换成json的方法小结
2019/07/09 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
2020/01/03 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
报社实习生自荐信
2014/01/24 职场文书
幼儿园庆六一游园活动方案
2014/01/29 职场文书
小学生国旗下演讲稿
2014/04/25 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
2014年医生工作总结
2014/11/21 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫