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 urlopen 使用小示例
Sep 06 Python
Python的Django框架中forms表单类的使用方法详解
Jun 21 Python
Python实现的redis分布式锁功能示例
May 29 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
Jul 12 Python
Python通过paramiko远程下载Linux服务器上的文件实例
Dec 27 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
Python对接支付宝支付自实现功能
Oct 10 Python
Python自动化完成tb喵币任务的操作方法
Oct 30 Python
keras中的loss、optimizer、metrics用法
Jun 15 Python
python判断是空的实例分享
Jul 06 Python
python中判断文件结束符的具体方法
Aug 04 Python
python如何修改文件时间属性
Feb 05 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/12/15 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
不错的新闻标题颜色效果
2006/12/10 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
js注册时输入合法性验证方法
2017/10/21 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
python实现飞机大战
2018/09/11 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
python根据多个文件名批量查找文件
2019/08/13 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
python中Mako库实例用法
2020/12/31 Python
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
医药学专业大学生职业生涯规划书论文
2014/01/21 职场文书
工作室成员个人发展规划范文
2014/01/24 职场文书
个人社会实践自我鉴定
2014/03/24 职场文书
关工委先进个人事迹材料
2014/05/23 职场文书
大学生简历求职信
2014/06/24 职场文书
干部对照检查材料范文
2014/08/26 职场文书
见义勇为事迹材料
2014/12/24 职场文书
奖学金感谢信
2015/01/21 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
MySQL添加索引特点及优化问题
2022/07/23 MySQL