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多线程编程(三):threading.Thread类的重要函数和方法
Apr 05 Python
Python3.x中自定义比较函数
Apr 24 Python
python开发之字符串string操作方法实例详解
Nov 12 Python
TF-IDF算法解析与Python实现方法详解
Nov 16 Python
pandas全表查询定位某个值所在行列的方法
Apr 12 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
Python中常用的内置方法
Jan 28 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
python3 sorted 如何实现自定义排序标准
Mar 12 Python
django queryset相加和筛选教程
May 18 Python
基于python和flask实现http接口过程解析
Jun 15 Python
Python通过m3u8文件下载合并ts视频的操作
Apr 16 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
MySQL修改密码方法总结
2008/03/25 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
laravel自定义分页效果
2017/07/23 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
基于zepto.js简单实现上传图片
2016/06/21 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
js仿360开机效果
2019/12/26 Javascript
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
Python pickle模块用法实例
2015/04/14 Python
儿童编程python入门
2018/05/08 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
详解Java中一维、二维数组在内存中的结构
2021/02/11 Python
优秀经理事迹材料
2014/02/01 职场文书
诉前财产保全担保书
2014/05/20 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers