=Start=
缘由:
作为程序员,经常会有这样的需求(尤其是在Linux服务器上没有界面的情况下)。一般情况下,知道1~2个方法就够用了,但是说不准哪天某个功能就不可用了(或者速度太慢了),所以,先准备一堆方法,以备不时之需。
参考解答:
纯文本格式输出
curl icanhazip.com curl ifconfig.me curl curlmyip.com curl ip.appspot.com curl api.ipify.org curl ipinfo.io/ip curl ipecho.net/plain curl www.trackip.net/i curl 'ipcalf.com/?format=text' dig +short myip.opendns.com @resolver1.opendns.com
JSON格式输出
curl ipinfo.io/json curl ifconfig.me/all.json curl httpbin.org/ip curl 'www.trackip.net/ip?json' curl 'api.ipify.org?format=json'
XML格式输出
curl ifconfig.me/all.xml
其它格式
curl ifconfig.me/all curl 'http://checkip.dyndns.org' curl ip.cn curl ipcalf.com curl http://httpbin.org/get
说句题外话,最开始了解这方面的知识是从「curl ifconfig.me」命令开始的,因为在Linux上查看本机网卡信息就是用的「ifconfig」命令,两者比较像,所以比较容易识记和使用。
==
之前看到的一个技巧「通过JS获取真实的外网IP和内网IP」,有需要的可以用用。
==
如果可以用浏览器的话,除了上面的方法,还可以通过访问:
来获取本机的外网IP地址。
参考链接:
- How to get Public IP from Linux Terminal?
- 如何在 Linux 终端中知道你的公有 IP
- http://stackoverflow.com/a/35123097
=END=
《 “如何获取你的公有IP” 》 有 18 条评论
用一行Python获取本机的外网IP:
“`
python -c “import socket; sock=socket.create_connection((‘ns1.dnspod.net’,6666)); print sock.recv(16); sock.close()”
“`
http://unix.stackexchange.com/questions/22615/how-can-i-get-my-external-ip-address-in-a-shell-script
高精度IP定位接口
https://www.opengps.cn/Data/IP/IPLocHiAcc.ashx
https://www.opengps.cn/Data/IP/IPHighAccuracy.aspx
https://www.opengps.cn/
准确率99.9%的ip地址定位库,0.0x毫秒级查询,数据库文件大小只有1.5M,提供了java,php,c,python,nodejs,golang查询绑定和Binary,B树,内存三种查询算法,妈妈再也不用担心我的ip地址定位!
https://github.com/lionsoul2014/ip2region
http://dongyado.com/tools/2016/08/18/structure-of-ip2region-database-file/
追踪IP地址你需要这几款工具加持
http://www.4hou.com/info/news/4331.html
`
1. Geotool
2. DomainTools
3. MyIPTest.com
4. IP Address Location
5. ipinfodb
6. IP Location Finder
7.Best Trace(ipip.net)
8. What Is My IP Address.com
9. Trace My IP.org
`
http://www.guidingtech.com/65195/trace-ip-address/
http://www.4hou.com/info/news/4331.html
全球云服务商 IP 地址分析报告 2H 2017
https://mp.weixin.qq.com/s/5XRz-inuBpTn_IGQLTAXpg
https://cdn.ipip.net/download/2017_2H_REPORT.jpg
IP.SB – 在线 IPv4 / IPv6 信息查询
https://sb.sb/ip-sb/
`
1、IP.SB 的由来
2、IP.SB 使用的 IP 数据库
3、IP.SB 基本功能介绍
3.1 查看本地出口 IP 地址
3.2 查询 IP 地址物理位置
3.3 查询 IP 和 ASN 的 whois 信息
3.4 查询 IP 基本知识
3.5 其他小工具
4、简单 API 使用
4.1 curl 方式
4.2 文本方式或者 IP
4.3 JSON 方式获取 IP
`
在线地图经纬度查询
http://www.gpsspg.com/maps.htm
http://api.map.baidu.com/lbsapi/getpoint/index.html
经纬度在线查询,地名(批量)查询经纬度,经纬度(批量)查询地名
http://map.yanue.net/
如何从地图中查询特定地点的经纬度?
经纬度 -> 地址
http://www.gpsspg.com/maps.htm
地址 -> 经纬度
http://api.map.baidu.com/lbsapi/getpoint/index.html #百度拾取坐标系统
https://lbs.amap.com/api/javascript-api/example/map/click-to-get-lnglat/ #高德地图获取鼠标点击经纬度
https://lbs.qq.com/tool/getpoint/ #腾讯地图坐标拾取器
python利用地图两个点的经纬度计算两点间距离
https://blog.csdn.net/u013401853/article/details/73368850
Python计算地图上两点经纬度间的距离
https://blog.csdn.net/vernice/article/details/46581361
I. 根据经纬度坐标计算两点间距离
https://blog.lovian.org/python/2018/04/16/python-calculate-distance-in-lat-lon.html
Getting distance between two points based on latitude/longitude
https://stackoverflow.com/questions/19412462/getting-distance-between-two-points-based-on-latitude-longitude
Calculating the Distance Between Two GPS Coordinates with Python (Haversine Formula)
https://nathanrooy.github.io/posts/2016-09-07/haversine-with-python/
Calculate distance between latitude longitude pairs with Python
https://gist.github.com/rochacbruno/2883505
分享一些获取QQ好友IP地址的方法
https://zhuanlan.zhihu.com/p/27555362
高精度IP地址查询|查IP|IP地址查询|IP定位|精确定位|百度高精度IP-www.chaipip.com
http://chaipip.com/ip.php
高精度IP定位 – openGPS.cn
https://www.opengps.cn/Data/IP/LocHighAcc.aspx
IP查询_最专业的 IP 地址库_IPIP.NET
https://www.ipip.net/ip.html
ip查询,ip地址查询,ip位置 – Hao7188
http://www.hao7188.com/
根据 Wifi 的 BSSID(MAC) 查询GPS信息
http://api.cellocation.com:81/wifi.html
http://www.cellocation.com/api/
LBS数据仓库
http://www.cellocation.com/
IPv6入门教程
https://mp.weixin.qq.com/s/GhctQMKcmAJiYE87wguX2g
【威胁猎人黑产研究】IPv6发展带来的反欺诈难题
https://www.threathunter.cn/report.html?id=9f0dbf10-da86-11e9-9beb-00163e048a4c
`
导语:IP是互联网最基础的身份标识,也是黑灰产业发展不可或缺的底层资源支撑。如果说IPv4是一颗星球,那IPv6就是一整个宇宙,它的地址空间接近无限。本文将揭露目前黑灰产对IPv6资源的利用情况,并剖析在IPv4向IPv6升级的过程中,业务场景下的安全将面临的挑战。
一、黑灰产采用IPv6发起攻击的趋势不可逆转
和IPv4相比,IPv6由128个二进制位组成,拥有2^128(约3.4×10^38)个地址,是IPv4的7.9×10^28倍,庞大的地址空间几乎接近无限,被十分形象的称为可以为全世界的每一粒沙子分配一个地址。
然福兮祸之所伏,IPv6的地址空间远超当前IPv4,也意味着黑灰产掌握的IP资源体量也将无限扩大,他们将有能力为每个恶意账号独立使用一个IP。以往在对抗过程中积累下的风控策略,具备的完备IPv4安全体系,在IPv6规模化普及后将面临新的挑战。
二、黑灰产已经开始利用IPv6资源
黑灰产的技术非常与时俱进,在与企业玩转“猫鼠游戏”的过程中攻击手段也有所升级。比如从早期的通过代理IP绕过风控规则的方式,到现在已经演化出“秒拨”“混拨”等,甲方的对抗策略也在IPv4的环境下也有相应的得到提升和积累。
然而,当IPv4开始向IPv6迁移,IP环境的变化不仅牵涉了网络设备、路由管理、IPv6协议栈的相应改变,IPv4下搭建的风控体系在迁移的过程也会面临改造和升级。
比如:
· 海量地址扫描:IPv6由128个二进制构成,这意味着,如果一个子网使用其中IPv6网络中的64位来分配IP,则子网的总容量,也就是可分配的IP数为2的64次方。假设遍历IPv4的全部地址需要一个小时。那么将这个子网下面的所有IP地址遍历一遍,将需要50万年…
· 黑名单库失效:在IPv4环境下积累的大量黑IP数据,对黑产IP进行识别有显著的帮助。但是,当IPv6时代来临,接近无限的IP地址会对黑名单库造成强烈冲击,原本高效的识别机制,在IPv6环境下将接近“无效”。
· 未知下的误判:IPv6部署的初级阶段,将面临IPv6地理位置、设备指纹等风险数据缺失的问题,从而导致无法准确判定IP性质,产生误判。
· ……
`
IP 库之中国特色第三方出口篇~
https://mp.weixin.qq.com/s/2teDwwIhyZ6BYIEQ_HL1vQ
`
【非一级网络运营商】以【非正规的方式】从一级运营商购买网络资源,使用【基于(大部分是动态)NAT的方案】造成了当前的:
用户IP的【网络位置】和【用户位置】分离,且大概率有毫无关系的多用户共用一个出口IP的情况。
那么问题就在于这个是基于 NAT 的方案,所以在我们看来,网络位置和用户位置分离,但是我们最后的考虑还是按照这种情况下保持网络位置进行标注。
有人会问,为什么不按照用户位置标注,第一是这种流量不固定,无论是采购方还是销售方,都在尽可能的不让人看到,所以可能今天在这里用,明天就不用了,即使还在这里用,也可能会很快的更换出口 IP,你就是能发现也总有时间延迟。这是个猫鼠游戏。
第二,用户情况不固定,也许今天这个 IP 是给一个公司用,也许明天就是几个公司混用,再加之有些运营商本身就是全国运营商网络,用户哪里都有,我们要如何标呢?要是按照手机基站的标注策略的话,改成中国的话,你觉得 IP 所有者会干吗?
第三,数据来源问题,我们用于 IP 库的数据,大部分是公开数据,而这种情况明显是要有业务数据才能做,我们倒是有心帮助大家把出口数据分离出来,虽然不涉及用户隐私,不过各位客户还是得先说服你们的 CEO 和法务部门吧。
综上所述,您可以可以明白了这个事情的根源和为什么让头疼的地方,所以一般来说,想要严格基于用户位置进行处理的业务,又没有其它数据辅助定位的,即使有但是比如你有大量 WEB 流量的,都会为这种流量头疼,比如广告类公司,比如支付类公司。
`
高精度IP地址查询-查IPIP
https://www.chaipip.com/aiwen.html
`
# ip定位历史
关于IP定位,最早是通过运营商实现,每个运营商申请到的ip段,在某个范围内使用。
因此早期只能是国家为单位的基础数据。
对于比较大的国家,就进一步划分,比如,中国某通讯公司(不打广告),固定将某些ip分配某些机房使用,而这些机房则具备地域属性,因此就可以知道某些ip的位置是哪个省市区。
在进一步,网上有种测算路由的方式进行定位,就是由大范围逐个跳转,跟踪路由。从而对比找出ip所在的小范围。
# 前提条件
如今,网络铺设已经有个相当多的特性,比如:
A.国内的某大运营商,ip资源够用,直接给用户分配公网ip。我以前就在这种网络下用动态域名工具玩过网站。
B.部分运营商为了缓解ip资源不足问题,某个大范围使用代理转发方式,给到用户的是私网ip,用户最终用代理的ip池的ip访问公网。
C.电话运营商,ip资源利用率过低,几乎是一个省份用一个ip池进行代理给用户的手机网络上网
# 延伸价值
随着大数据的发展,百度做了大数据匿名收集数据,数据实时分析。因此可以将手机收集到的精准GPS数据和当前所用IP数据成对上报给后端服务器,运算过之后,就可以得出某个IP的分布范围数据。
# 误差说明
对于上述A的情况,精确度可以达到几十米
对于上述B的情况,可能得覆盖一个城市的范围
对于上述C的情况,往往是一个省份的误差程度
因此,对于有线宽带用户,分配了相对固定的公网IP,用户在这个线路下又放置了wifi无线路由器,wifi下有接入了手机用户,手机里运行了百度的服务,比如百度地图,或者百度地图SDK。
其定位精度就可以达到几十米范围。对于这种数据,只有bat这种大头才能实现的了这个规模的数据收集,因此准确度几乎无法被超越,更大的互联网公司除外。
`
question:
请问如何分别一个IPv6地址是公网IP还是内网IP?
answer:
`
IPv6地址的分配和使用方式与IPv4有所不同,因此判断一个IPv6地址是否为公网(全球唯一)或内网(局部使用或非全局路由)的方法也有所不同。
在IPv6中,并没有像IPv4那样明确的私有地址范围(如10.0.0.0/8, 172.16.0.0/12, 和192.168.0.0/16)。但是,有一些IPv6前缀是用来做特定用途的,可以用来大致判断地址类型:
1. **全局唯一的单播地址**(Global Unicast Addresses):
– 这些地址类似于IPv4中的公有地址,它们是全局唯一的并且在全球范围内可路由。这类地址通常以2000::/3开始。
2. **链路本地地址**(Link-Local Addresses):
– 链路本地地址用于节点之间的直接通信,通常在没有路由器的情况下使用。这类地址的前缀是FE80::/10。
3. **站点本地地址**(Site-Local Addresses):
– IPv6中已经废弃了站点本地地址,取而代之的是“唯一本地地址”(Unique Local Addresses)。但是,如果遇到的话,这类地址的前缀是FEC0::/10。
4. **唯一本地地址**(Unique Local Addresses):
– 这些地址用于组织内部,不会被路由到全球互联网上。这类地址的前缀是FC00::/7。
5. **多播地址**(Multicast Addresses):
– 多播地址用于一对多的通信,其前缀是FF00::/8。
如果你有一个IPv6地址,并且想要知道它是否为全局可路由的地址,你可以检查它的前缀是否为2000::/3。如果一个地址的前缀是FE80::/10,那么它是链路本地地址,通常不会出现在互联网主干网上。如果前缀是FC00::/7,则该地址是唯一本地地址,意味着它是在局部网络使用的,不是全局唯一的。
需要注意的是,IPv6的设计目标之一就是让大多数地址都能够全局可达,因此除了特殊用途的地址之外,大部分的IPv6地址都应该是全局唯一的。
`
IPv6地址的格式及子网划分方法(IPv6子网划分)
https://zhuanlan.zhihu.com/p/556136525
124.126.104.85 – 124.126.104.105
bd