在Linux终端中查看公有IP的方法详解

   首先回顾一下一般的查看IP的命令:

  ifconfig

  Linux查看IP地址的命令--ifconfig

  ifconfig命令用于查看和更改网络接口的地址和参数

  $ifconfig -a

  lo0: flags=849 mtu 8232

  inet 127.0.0.1 netmask ff000000

  hme0: flags=863 mtu 1500

  inet 211.101.149.11 netmask ffffff00 broadcast 211.101.149.255

  ether 8:0:20:a7:4d:21

  系统会显示网络接口的名称,接口的状态(up or down),

  接口的IP地址和掩码等信息

  取出本机IP地址:

  ifconfig|grep Bcast|awk -F: '{print $2}'|awk -F " " '{print $1}'

  取出本机IP地址个数:

  ifconfig|grep Bcast|awk -F: '{print $2}'|awk -F " " '{print $1}'|wc -l

  如何在 Linux 终端中知道你的公有 IP

  公有地址由 InterNIC 分配并由基于类的网络 ID 或基于 CIDR 的地址块构成(被称为 CIDR 块),并保证了在全球互联网中的唯一性。当公有地址被分配时,其路由将会被记录到互联网中的路由器中,这样访问公有地址的流量就能顺利到达。访问目标公有地址的流量可经由互联网抵达。比如,当一个 CIDR 块被以网络 ID 和子网掩码的形式分配给一个组织时,对应的 [网络 ID,子网掩码] 也会同时作为路由储存在互联网中的路由器中。目标是 CIDR 块中的地址的 IP 封包会被导向对应的位置。

  在本文中我将会介绍在几种在 Linux 终端中查看你的公有 IP 地址的方法。这对普通用户来说并无意义,但 Linux 服务器(无GUI或者作为只能使用基本工具的用户登录时)会很有用。无论如何,从 Linux 终端中获取公有 IP 在各种方面都很意义,说不定某一天就能用得着。

  以下是我们主要使用的两个命令,curl 和 wget。你可以换着用。

  Curl 纯文本格式输出:

  代码如下:

  curl icanhazip.com

  curl ifconfig.me

  curl curlmyip.com

  curl ip.appspot.com

  curl ipinfo.io/ip

  curl ipecho.net/plain

  curl www.trackip.net/i

  curl JSON格式输出:

  代码如下:

  curl ipinfo.io/json

  curl ifconfig.me/all.json

  curl www.trackip.net/ip?json

  (有点丑陋)

  curl XML格式输出:

  代码如下:

  curl ifconfig.me/all.xml

  curl 得到所有IP细节 (挖掘机)

  curl ifconfig.me/all

  使用 DYDNS (当你使用 DYDNS 服务时有用)

  代码如下:

  curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: ([0-9.]*).*/1/g'

  curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]+"

  使用 Wget 代替 Curl

  代码如下:

  wget http://ipecho.net/plain -O - -q ; echo

  wget http://observebox.com/ip -O - -q ; echo

  使用 host 和 dig 命令

  如果有的话,你也可以直接使用 host 和 dig 命令。

  代码如下:

  host -t a dartsclink.com | sed 's/.*has address //'

  dig +short myip.opendns.com @resolver1.opendns.com

  bash 脚本示例:

  代码如下:

  #!/bin/bash

  PUBLIC_IP=`wget http://ipecho.net/plain -O - -q ; echo`

  echo $PUBLIC_IP

  简单易用。

  我实际上是在写一个用于记录每日我的路由器中所有 IP 变化并保存到一个文件的脚本。我在搜索过程中找到了这些很好用的命令。希望某天它能帮到其他人。

时间: 2024-10-03 23:19:25

在Linux终端中查看公有IP的方法详解的相关文章

FlashFXP中查看ftp密码的方法详解

给各位来详细的解析分享一下FlashFXP中查看ftp密码的方法. 方法解析: 1.点击菜单栏[属性]>[参数选择],或者按快捷键F6.   FlashFXP 2.在参数选择界面,点击左侧的[选项],然后勾选右侧下方安全性下的"在选择密码字段时展现密码".   FlashFXP 3.在菜单栏打开"站点管理器"或按快捷键F4,在站点管理器界面将鼠标光标放到密码输入框点击一下就能看到密码明文显示出来了. 好了,以上的信息就是小编给各位带来的详细的FlashFXP中

Mongodb中MapReduce实现数据聚合方法详解_MongoDB

Mongodb是针对大数据量环境下诞生的用于保存大数据量的非关系型数据库,针对大量的数据,如何进行统计操作至关重要,那么如何从Mongodb中统计一些数据呢? 在Mongodb中,给我们提供了三种用于数据聚合的方式: (1)简单的用户聚合函数: (2)使用aggregate进行统计: (3)使用mapReduce进行统计: 今天我们首先来讲讲mapReduce是如何统计,在后续的文章中,将另起文章进行相关说明. MapReduce是啥呢?以我的理解,其实就是对集合中的各个满足条件的文档进行预处理

Lua中break语句的使用方法详解

  这篇文章主要介绍了Lua中break语句的使用方法详解,是Lua入门学习中的基础知识,需要的朋友可以参考下 当循环中遇到break语句,循环立即终止,程序控制继续下一个循环语句后面. 如果您正在使用嵌套循环(即一个循环里面另一个循环),break 语句将停止最内层循环的执行并开始执行的下一行代码的程序后段. 语法 Lua break语句语法如下: 代码如下: break 例子: 代码如下: --[ local variable definition --] a = 10--[ while l

js基础之DOM中元素对象的属性方法详解_javascript技巧

在 HTML DOM (文档对象模型)中,每个部分都是节点. 节点是DOM结构中最基本的组成单元,每一个HTML标签都是DOM结构的节点. 文档是一个    文档节点 . 所有的HTML元素都是    元素节点 所有 HTML 属性都是    属性节点 文本插入到 HTML 元素是    文本节点 注释是    注释节点. 最基本的节点类型是Node类型,其他所有类型都继承自Node,DOM操作往往是js中开销最大的部分,因而NodeList导致的问题最多.要注意:NodeList是'动态的',

JavaScript中关键字 in 的使用方法详解_javascript技巧

for-in循环应该用在非数组对象的遍历上,使用for-in进行循环也被称为"枚举". 对于数组 ,迭代出来的是数组元素 但不推荐,因为不能保证顺序,而且如果在Array的原型上添加了属性,这个属性也会被遍历出来,所以 最好数组使用正常的for循环,对象使用for-in循环 对于对象 ,迭代出来的是对象的属性: var obj = { "key1":"value1", "key2":"value2", &q

Javascript中的迭代、归并方法详解_基础知识

迭代方法 在Javascript中迭代方法个人觉得尤为重要,在很多时候都会有实际上的需求,javascript提供了5个迭代方法来供我们操作,它们分别为: every() 对数组中的每一个项运用给定的函数,如果每项都返回true,那么就会返回true filter() 对数组中的每一个项运用给定的函数,把返回true的项组成一个新数组并返回 forEach() 对数组中的每一项运用给定的函数,但是没有任何的返回值 map() 对数组中的每一个项运用给定的函数并返回每次函数调用的结果组成新的数组

Struts中使用validate()输入校验方法详解_java

1.在ActionSupport中有一个validate()方法,这个方法是验证方法,它会在execute()方法执行之前执行,所以能够起到很好的验证的作用. @Override //重写Action中的validate()方法 public void validate() { if(null==this.username||this.username.length()<4||this.username.length()>6){ this.addActionError("userna

linux中wget命令的使用方法详解

Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.  wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行.   这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦.   wget 可以跟踪

解析Linux系统中JVM内存2GB上限的详解_java

我们通常使用的JVM都是32位的(64位的JVM会损失10-20%的性能,通常不建议使用),而32位程序的寻址空间应该是4GB才对,为什么Linux上的JVM内存只能使用2GB呢? 经过和JDK研发组的人员沟通,终于弄清楚了一些相关的原因.这个问题存在于早期的一些Linux版本中,特别是内核2.5以前的版本,2.6以后的版本就基本上没有这个问题了.原来这些Linux版本对进程有个对内存2GB的限制,是一个地址连续的内存块大小的上限,而JVM的堆空间(heap size)需要连续的地址空间,因此,