IP 地址可以分为两类,公用和私有(专用)。公用 IP 是唯一的 IP 地址,可以从 Internet 访问。专用 IP 地址保留供您专用网络内部使用,而不会直接暴露给 Internet。

本文将介绍几种确定 Linux 系统的公共 IP 地址和私有 IP 地址的不同方法。(当然有些在windows下也是可以的)

查找你的私有 IP 地址

专用 IP 地址不可通过 Internet 路由,并且只能在本地网络内工作。通常,专用 IP 地址是由路由器分配给本地网络中的每个设备的。这为本地网络中的设备(例如电话、笔记本电脑、智能电视、打印机、媒体中心等)提供了唯一的 IP 地址。本地网络上的设备通过 NAT(网络地址转换)连接到 Internet。

以下 IPv4 地址范围是为专用网络保留的:

10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

你可以通过使用诸如 ipifconfig 或 hostname 命令查询网络堆栈确定系统的私有 IP 地址。

在 Linux 中,用于显示和配置网络接口的标准工具是 ip

要显示所有网络接口和关联的 IP 地址的列表,请键入以下命令:

ip addr

你还可以使用以下命令来显示私有 IP 地址:

$ hostname -I

$ ifconfig

查找你的公共 IP 地址

确定公共 IP 地址可以通过 HTTP/HTTPS 或 DNS 协议联系远程服务器,并从远程服务器响应中获取 IP 地址。

如果你是在没有 GUI 的 Linux 服务器上获取你分配到的公网 IP 地址,你可以使用命令行工具 digcurl 和 wget 等来获取。

大多数 DNS 提供商(例如:OpenDNS 和 Google)都允许你查询其服务器并获取你的公共 IP 地址。你可以使用以下任何命令来获取公网 IP:

$ dig ANY +short @resolver2.opendns.com myip.opendns.com

$ dig ANY +short @resolver2.opendns.com myip.opendns.com

$ dig ANY +short @ns1-.akamaitech.net ANY whoami.akamai.net

另外,有许多在线 HTTP/HTTPS 服务可以返回你的公共 IP 地址。这里是其中的一些:

$ curl -s http://tnx.nl/ip

$ curl -s https://checkip.amazonaws.com

$ curl -s api.infoip.io/ip

$ curl -s ip.appspot.com

$ wget -O - -q https://icanhazip.com/

$ curl ip.sb

为了方便使用,你还可以创建一个别名来方便查询。

alias pubip='dig ANY +short @resolver2.opendns.com myip.opendns.com'

现在,你要查找公共 IP 时,只需键入 pubip 命令即可。

参考链接:https://mp.weixin.qq.com/s/dkVd0eQfzGHxM3SQ6picuQ

快速获取 IP 地址的更多相关文章

  1. 快速获取IP地址的各种方法

    调用百度的IP定位API(首先需要去百度开放平台注册申请key值http://lbsyun.baidu.com/apiconsole/key) http://api.map.baidu.com/loc ...

  2. Linux下Python获取IP地址

    <lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是 ...

  3. 电脑无法上网,DHCP客户端不能正确获取IP地址

    问题特征:DHCP服务器更新[保留]配置信息后,给一客户端绑定了新的IP地址;但客户端IP地址并未正确更新; 处理: 一.检查DHCP服务器配置; 1.MAC地址.IP地址均正确;并已“添加到筛选器” ...

  4. windows下获取IP地址的两种方法

    windows下获取IP地址的两种方法: 一种可以获取IPv4和IPv6,但是需要WSAStartup: 一种只能取到IPv4,但是不需要WSAStartup: 如下: 方法一:(可以获取IPv4和I ...

  5. 【PHP开发篇】一个统计客户端商机提交的获取IP地址

    1.对客服提交数据的ip地址记录. 获取ip地址的方法: public function getIP() { global $ip; if (getenv("HTTP_X_REAL_IP&q ...

  6. 获取 IP 地址

    package j2se.core.net.base; import java.net.InetAddress;import java.net.UnknownHostException; public ...

  7. 批处理快速更改ip地址

    在各种网络中切换,windows更换ip地址步骤:  进入控制面板--网络和internet--网络和共享中心--理性适配器设置--然后找到网卡--进入属性--然后internet 协议--更改ip信 ...

  8. js获取IP地址方法总结_转

    js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...

  9. iOS 获取IP地址

    一.获取本机IP地址 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #import <ifadd ...

随机推荐

  1. 洛谷 P5638 光骓者的荣耀

    洛谷 P5638 [CSGRound2]光骓者的荣耀 洛谷传送门 题目背景 小 K 又在做白日梦了.他进入到他的幻想中,发现他打下了一片江山. 题目描述 小 K 打下的江山一共有nn个城市,城市ii和 ...

  2. python接口测试:如何将A接口的返回值传递给B接口

    在编写接口测试脚本时,要考虑一个问题:参数值从哪里获取 一种方式是可以通过数据库来获取,但是通过这次接口测试,我发现读取数据库有一个缺点:速度慢 可能和我的sql写法有关,有些sql加的约束条件比较少 ...

  3. bzoj5092 分割序列

    题目链接 problem 对于一个长度为n的非负整数序列\(b_1,b_2,...,b_n\),定义这个序列的能量为:\(f(b)=\max\limits_{i=0,1,...,n}(b_1 \oti ...

  4. Tomcat 设置JVM内存大小

    我的服务器的配置: # OS specific support.  $var _must_ be set to either true or false. JAVA_OPTS="-Xms10 ...

  5. 1+x证书Web前端开发HTML+CSS专项练习测试题(八)

    1+x证书Web前端开发HTML+CSS专项练习测试题(八) 官方QQ群 1+x 证书 Web 前端开发 HTML+CSS 专项练习测试题(八) http://blog.zh66.club/index ...

  6. PHP面试题大全(值得收藏)

    PHP进阶.面试:文档.视频资源点击免费获取 一 .PHP基础部分 1.PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操 ...

  7. EJB学习

    EJB:企业级JavaBean(Enterprise JavaBean, EJB)是一个用来构筑企业级应用的服务器端可被管理组件. EJB主要有三种Bean: Session Beans: 会在单个特 ...

  8. 多模块springboot项目启动访问不了jsp页面

    被springboot项目maven打包.启动.访问折腾的头都大了,一步一个坑,在解决了所有的问题之后,那种欣喜若狂的心情只有自己能体会,决定要好好记录一下了,废话不多说了,直接进入正题. 问题和排查 ...

  9. MYSQL 高级语法

    1.高级建表和插入 使用creat 和select 进行建表操作,中间采用AS 标识符: CREATE TABLE new_table AS SELECT * FROM exist_table LIM ...

  10. C++ delete 和 delete []的区别

    转载自https://blog.csdn.net/cbNotes/article/details/38900799 1.我们通常从教科书上看到这样的说明:delete 释放new分配的单个对象指针指向 ...