如何获取你的公有IP


=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地址。

参考链接:

=END=


《 “如何获取你的公有IP” 》 有 18 条评论

  1. 用一行Python获取本机的外网IP:
    “`
    python -c “import socket; sock=socket.create_connection((‘ns1.dnspod.net’,6666)); print sock.recv(16); sock.close()”
    “`

  2. 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
    `

  3. 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性质,产生误判。
    · ……
    `

  4. IP 库之中国特色第三方出口篇~
    https://mp.weixin.qq.com/s/2teDwwIhyZ6BYIEQ_HL1vQ
    `
    【非一级网络运营商】以【非正规的方式】从一级运营商购买网络资源,使用【基于(大部分是动态)NAT的方案】造成了当前的:
    用户IP的【网络位置】和【用户位置】分离,且大概率有毫无关系的多用户共用一个出口IP的情况。

    那么问题就在于这个是基于 NAT 的方案,所以在我们看来,网络位置和用户位置分离,但是我们最后的考虑还是按照这种情况下保持网络位置进行标注。

    有人会问,为什么不按照用户位置标注,第一是这种流量不固定,无论是采购方还是销售方,都在尽可能的不让人看到,所以可能今天在这里用,明天就不用了,即使还在这里用,也可能会很快的更换出口 IP,你就是能发现也总有时间延迟。这是个猫鼠游戏。

    第二,用户情况不固定,也许今天这个 IP 是给一个公司用,也许明天就是几个公司混用,再加之有些运营商本身就是全国运营商网络,用户哪里都有,我们要如何标呢?要是按照手机基站的标注策略的话,改成中国的话,你觉得 IP 所有者会干吗?

    第三,数据来源问题,我们用于 IP 库的数据,大部分是公开数据,而这种情况明显是要有业务数据才能做,我们倒是有心帮助大家把出口数据分离出来,虽然不涉及用户隐私,不过各位客户还是得先说服你们的 CEO 和法务部门吧。

    综上所述,您可以可以明白了这个事情的根源和为什么让头疼的地方,所以一般来说,想要严格基于用户位置进行处理的业务,又没有其它数据辅助定位的,即使有但是比如你有大量 WEB 流量的,都会为这种流量头疼,比如广告类公司,比如支付类公司。
    `

  5. 高精度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这种大头才能实现的了这个规模的数据收集,因此准确度几乎无法被超越,更大的互联网公司除外。
    `

  6. 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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注