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中的自定义函数学习笔记
Sep 23 Python
python获取远程图片大小和尺寸的方法
Mar 26 Python
在Python中使用swapCase()方法转换大小写的教程
May 20 Python
Python编程实现从字典中提取子集的方法分析
Feb 09 Python
使用Python将Mysql的查询数据导出到文件的方法
Feb 25 Python
python,Django实现的淘宝客登录功能示例
Jun 12 Python
基于python二叉树的构造和打印例子
Aug 09 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
Dec 25 Python
python @propert装饰器使用方法原理解析
Dec 25 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
简单了解Java Netty Reactor三种线程模型
Apr 26 Python
python实现经典排序算法的示例代码
Feb 07 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加密解密函数分享
2014/06/05 PHP
laravel安装和配置教程
2014/10/29 PHP
php对文件进行hash运算的方法
2015/04/03 PHP
PHP SOCKET编程详解
2015/05/22 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
cssQuery()的下载与使用方法
2007/01/12 Javascript
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
jQuery实现的简单歌词滚动功能示例
2019/01/07 jQuery
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
Python将多个list合并为1个list的方法
2018/06/27 Python
Sanic框架流式传输操作示例
2018/07/18 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
python plotly绘制直方图实例详解
2019/07/22 Python
python logging通过json文件配置的步骤
2020/04/27 Python
HTML5表格_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
工商企业管理应届生求职信
2013/11/03 职场文书
大学军训感言
2014/01/10 职场文书
国企干部对照检查材料
2014/08/22 职场文书
学校百日安全活动总结
2015/05/07 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
Python编程中Python与GIL互斥锁关系作用分析
2021/09/15 Python