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. linux shell攻略学习笔记二

    1.Cat命令 这么多命令,常用的 Cat –n file  显示文件以及行数 Cat - echo 'Text through stdin' | cat - file.txt Text throug ...

  2. WPF (DataGridColumnHeader)实现自义定列头样式 并绑定数据

    原文:WPF (DataGridColumnHeader)实现自义定列头样式 并绑定数据 实现功能是这样的 自定义列头 样式 样式里的 数据来源于后台绑定 这篇就说头样式 和头样式数据绑定 思路 1) ...

  3. Ubuntu 16.04 安装 mujoco, mujoco_py 和 gym

    Mujoco (1)官网(https://www.roboti.us/license.html)注册 license,教育邮箱注册可以免费使用一年.注意:一个邮箱账号只能供一台主机使用. 填写个人信息 ...

  4. ROS Tricks

    Gazebo 第一次进入 Gazebo 会卡在开始界面,此时是在加载模型文件,为保证模型顺利加载,可以提前将模型文件下载并放在本地路径 ~/.gazebo/models 下,模型文件下载地址: htt ...

  5. php 数组赋值

    结果: 结论:第一种方式的运行速度是第二种方式的二倍左右.

  6. vim 下修改tab键为四个空格

    最近在运行python的时候,发现tab键在在运行过程中无法使用,报错:IndentationError: unindent does not match any outer indentation ...

  7. 实例调用(__call__())

    任何类,只需要定义一个__call__()方法,就可直接对实例进行调用 对实例进行直接调用就好比对一个函数进行调用一样 __call__()还可定义参数,所以调用完全可以把对象看成函数,把函数看成对象 ...

  8. layui 使用随记

    layui confir使用 不显示右上角关闭按钮 针对提示框内按钮指定操作 layer.confirm("这里填写提示信息", {closeBtn:0,icon: 0, titl ...

  9. python库的tkinter带你进入GUI世界(计算器简单功能)

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 一个处女座的程序猿 PS:如有需要Python学习资料的小伙伴可以加 ...

  10. centos 7 搭建Samba

    一.Samba简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,由客户端和服务端构成. SMB(Server Message Block的缩写,即服务器消息块)主要是作 ...