IP 跟踪
#coding=utf-8
import sys
import os
import re
import urllib
import subprocess
def getlocation(ip):
result = urllib.urlopen("http://www.ip138.com/ips.asp?ip=%s&action=2" % ip)
res = result.readlines()
result.close()
for i in res:
if re.match(".*ul class=\"ul1\".*",i):
ipblock=i
if 'ipblock' in dir():
add1 = ipblock.split("<")[3].split(">")[1].decode('gb2312')[6:].encode('utf8')
add2 = ipblock.split("<")[5].split(">")[1].decode('gb2312')[6:].encode('utf8')
if add1 == add2:
return "\t\t\t"+add1
else:
return "\t\t\t"+add1+"\tOR\t"+add2
if len(sys.argv) < 2:
print "Usage: %s {hostname|ip}" % sys.argv[0]
sys.exit()
else:
host = sys.argv[1]
try:
p = subprocess.Popen(['tracert',host],stdout=subprocess.PIPE)
while True:
line = p.stdout.readline()
if not line:
break
if re.match("^.[0-9].*(.*).*",line):
try:
ip = line.split('(')[1].split(')')[0]
print line+getlocation(ip)
except IndexError,e:
print line,
else:
print line,
except (KeyboardInterrupt,SystemExit):
sys.exit()
执行方法,到目录下 tracert.py www.baidu.com
IP 跟踪的更多相关文章
- asp.net客户端IP跟踪
/// <summary> /// 获取客户端IP地址(无视代理) /// </summary> /// <returns>若失败则返回回送地址</retur ...
- NAT(Network Address Translation)
一.概述 NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, I ...
- 第11章 拾遗1:网络地址转换(NAT)和端口映射
1. 网络地址转换(NAT) 1.1 NAT的应用场景 (1)应用场景:允许将私有IP地址映射到公网地址,以减缓IP地址空间的消耗 ①需要连接Internet,但主机没有公网IP地址 ②更换了一个新的 ...
- 转 NAT技术详解
NAT产生背景 今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣.他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需.企业利用互联网发布信息,传递资料和 ...
- NAT技术详解
一.IPv4协议和NAT的由来 1.IPv4协议介绍 2011年2月3日,IANA宣布:IPv4地址空间最后5个地址块已经被分配给下属的5个地区委员会.2011年4月15日,亚太区委员会APNIC对外 ...
- NAT(地址转换技术)学习
一.什么是NAT,NAT产生的背景 NAT通常部署在一个组织的网络出口位置,通过将内部网络IP地址替换为出口的IP地址提供公网可达性和上层协议的连接能力. NAT产生的背景是为了解决IPv4地址不足的 ...
- NAT(地址转换技术)详解
目录 NAT产生背景ip地址基础知识NAT技术的工作原理和特点静态NAT动态NATNAT重载(经常应用到实际中)NAT技术的优缺点优点缺点NAT穿越技术应用层网关(ALG)ALG的实际应用NAT技术的 ...
- Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径。
Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径. Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其 ...
- Linux 从网卡到TCP IP协议栈数据流跟踪与审计
前沿 在学代码审计,然后最近做Linux协议栈的审计,发现Linux不愧是一个久经考验的系统,本来以为可以找到个DoS的,结果发现其在TCP/IP协议栈的链路层实现,利用了各种技术,用来提高性能与安全 ...
随机推荐
- django5-书籍与出版社关联外键
1.外键相关 一对多的概念 ,这里是一个出版社对应本书籍 ! 设计表使用model models.ForeignKey('关联一', on_delete=models.CASCADE) #给多设置外键 ...
- arcgis api for javascript 学习(四) 地图的基本操作
1.文章讲解的为地图的平移.放大.缩小.前视图.后视图以及全景视图的基本功能操作 2.主要用到的是arcgis api for javascript中Navigation的用法,代码如下: <! ...
- 控件类——Button、UIControlState状态、title及其属性
封装: 封装按钮:1.有提示文字 —>UILable 2.并且可以点击 —> UIControl UIButton:是一个按钮(系统已经把UIControl封装好了). 里面可以放文字. ...
- Python3使用线程
Python2标准库中提供了两个模块thread和threading支持多线程.thread有一些缺陷在Python3中弃用,为了兼容性,python3 将 thread 重命名为 "_th ...
- React教程:4 个 useState Hook 示例
摘要: React示例教程. 原文:快速了解 React Hooks 原理 译者:前端小智 到 React 16.8 目前为止,如果编写函数组件,然后遇到需要添加状态的情况,咱们就必须将组件转换为类组 ...
- 大数据分析的下一代架构--IOTA架构设计实践[下]
大数据分析的下一代架构--IOTA架构设计实践[下] 原创置顶 代立冬 发布于2018-12-31 20:59:53 阅读数 2151 收藏 展开 IOTA架构提出背景 大数据3.0时代以前,Lam ...
- SRDC - ORA-1548: Checklist of Evidence to Supply (Doc ID 1682693.1)
SRDC - ORA-1548: Checklist of Evidence to Supply (Doc ID 1682693.1) Action Plan 1. Execute srdc_db_u ...
- 新MySQL查询和删除重复记录
在工作中,我们经常会发现表中会存在重复数据,那么如何找出和删除这些数据呢? 下面,以一个小例子来说明: 1.创建学生表 1 CREATE TABLE student( 2 id INT PRIMARY ...
- Mysql—数据库管理与表管理
数据库管理 表管理 删除表
- ntp服务设置开机自启动失败
设置了ntpd开机自启动,重启服务器ntpd没有自启动 1.需要禁掉chronyd.service: systemctl disable chronyd.service 2.手动启动ntpd: sys ...