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 相关文章推荐
go语言计算两个时间的时间差方法
Mar 13 Python
python创建进程fork用法
Jun 04 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
Feb 08 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
Python一键安装全部依赖包的方法
Aug 12 Python
python实现简易学生信息管理系统
Apr 05 Python
基于python实现把图片转换成素描
Nov 13 Python
vscode调试django项目的方法
Aug 06 Python
如何从csv文件构建Tensorflow的数据集
Sep 21 Python
Python特殊属性property原理及使用方法解析
Oct 09 Python
Python Tkinter实例——模拟掷骰子
Oct 24 Python
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 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
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
AJAX使用了UpdatePanel后无法使用alert弹出脚本
2010/04/02 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
jQuery 局部div刷新和全局刷新方法总结
2016/10/05 Javascript
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
js删除对象中的某一个字段的方法实现
2021/01/11 Javascript
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
跟单文员岗位职责
2014/01/03 职场文书
中文专业求职信
2014/06/20 职场文书
委托书怎样写
2014/08/30 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
小学教师岗位职责
2015/04/02 职场文书
观看《筑梦中国》纪录片心得体会
2016/01/18 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android
分享3个非常实用的 Python 模块
2022/03/03 Python
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python
把77A收信机改造成收音机
2022/04/05 无线电