当前位置: 首页 > news >正文

Linux查看IP地址的几种方法

只显示IP地址:

$ hostname -I (大写的i)

显示所有网络信息

$ ifconfig 

获取Linux IP地址的六种方法总结

刘小白DOER

    本文总结六种查看Linux IP地址的方法,方便以后的运维开发工作。

    在介绍前先学习一下三个命令行筛选的主要的指令,也是频繁使用到的命令。

1、head。head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10。

运行head --help查看说明信息:

-q 隐藏文件名

-v 显示文件名

-c<数目> 显示的字节数。

-n<行数> 显示的行数。

2、grep。 grep 命令用于查找文件里符合条件的字符串。运行grep --help查看说明信息,参数太多主要有以下几种:

grep -r递归选择。

grep -v反选,显示不包含匹配文本的所有行。

grep -n显示符合样式的那一行之前。

grep -A显示符合范本样式的那一列之外,并显示该行之后的内容。

3、awk。强大的文本分析工具,命令使用过于复杂(awk --help),只需要知道 awk '{print$2}'为打印第二行数据。

4、tail。tail命令可用于查看文件的结束部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10。tail --help查看主要的参数:

tail -n显示最后多少行

tail -c显示最后十个字符

tail -f 循环读取,跟踪显示最后十行

5、cut。显示每行从开头算起的文字。

cut -b :以字节为单位进行分割。

cut -c :以字符为单位进行分割

cut -d :自定义分隔符,默认为制表符

cut -f :与-d一起使用,指定显示哪个区域

获取Linux IP地址的几种方法:

一、ifconfig命令

无线网卡地址:

echo wlan0=`ifconfig  wlan0 | head -n2 | grep inet | awk '{print$2}'`

有线网卡地址:

echo eth0=`ifconfig  eth0 | head -n2 | grep inet | awk '{print$2}'`

或者命令:

ifconfig | grep "inet " | cut -d: -f2 | awk '{print $1}' | grep -v "^127."

二.ip address命令

无线网卡地址:

ip address | grep wlan0 | awk '{print$2}'

有线网卡地址:

ip address | grep eth0 | awk '{print$2}'

或者

echo eth0=`ip address show  eth0 | head -n4 | grep inet | awk '{print$2}'

echo wlan0=`ip address show wlan0 | head -n4 | grep inet | awk '{print$2}'

三、 hostname -I 命令

运行hostname -help命令查看说明信息:

Program options:

    -a, --alias            alias names

    -A, --all-fqdns        all long host names (FQDNs)

    -b, --boot            set default hostname if none available

    -d, --domain          DNS domain name

    -f, --fqdn, --long    long host name (FQDN)

    -F, --file            read host name or NIS domain name from given file

    -i, --ip-address      addresses for the host name

    -I, --all-ip-addresses all addresses for the host

    -s, --short            short host name

    -y, --yp, --nis        NIS/YP domain name

hostname -i得到环回地址127.0.1.1, hostname -I得到具体的网卡信息192.168.31.82 。

四、php shell_exec函数查看ip地址

php语言查看ip就是使用函数shell_exec来执行shell命令。

比如:

<?php

  echo shell_exec("echo wlan0=`ifconfig  wlan0 | head -n2 | grep inet | awk '{print$2}'`");

?>

然后执行php ip.php 。shell_exec()里面可以放置任何shell命令。这个方法的意义在于php可以通过网页对外提供服务。

五、python socket查看ip地址

#!/usr/bin/env python

import socket

import fcntl

import struct

def get_ip_address(ifname):

    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    return socket.inet_ntoa(fcntl.ioctl(

      s.fileno(),

      0x8915,  # SIOCGIFADDR

      struct.pack('256s', ifname[:15])

  )[20:24])

Local_wlan0=get_ip_address("wlan0")

Local_lo=get_ip_address("lo")

#Local_eth0=get_ip_address("eth0")

print Local_wlan0

print Local_lo

#print Local_eth0

利用socket包,然后执行python  ip.py 得到wlan0信息。

六、python  os.popen函数查看ip地址

#!/usr/bin/env python

import os

def get_ip():

out = os.popen("echo wlan0=`ifconfig  wlan0 | head -n2 | grep inet | awk '{print$2}'`").read()

print out

if __name__ == '__main__':

get_ip()

和php的shell_exec函数类似,os.popen()里面可以放置任何shell命令。注意有个函数os.system的结果只是命令执行结果的返回值,执行成功为0;os.popen()可以读出执行的内容,输出的结果比较特殊,带换行符\n 。


作者:刘小白DOER
链接:https://www.jianshu.com/p/f6c7233649be
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章:

  • linux常用命令:查看硬件配置的方法示例(含Jetson)
  • anaconda安装opencv -> python[version=‘>=2.7,<2.8.0a0|>=3.5,<3.6.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0‘]
  • VIM的一些常指令和用法
  • 如何自定义FileZilla编辑文件的默认打开方式
  • 如何在 Ubuntu 和其它 Linux 发行版中更改时区
  • OpenVINO: export failure: libpython3.9.so.1.0: cannot open shared object file: No such file or direc
  • udev规则以及编写
  • ROS + UDEV管理开源小车rikirobot的USB设备
  • (ros//EnvironmentVariables)ros环境变量
  • ROS移植机器人小车:小车主机与从机电脑的通信
  • Linux查看版本和系统信息
  • ROS移植机器人小车: rikirobot试运行
  • Linux+Grub启动引导修复错误:Gnu Grub Version 2.04 Minimal BASH-like editing is supported...
  • Ubuntu下安装指定版本的cmake包
  • Ubuntu20.04编译安装Opencv4.5.5安装包报错:Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【mysql】环境安装、服务启动、密码设置
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • js面向对象
  • Odoo domain写法及运用
  • 普通函数和构造函数的区别
  • 前嗅ForeSpider教程:创建模板
  • 如何设计一个比特币钱包服务
  • 三栏布局总结
  • 数据可视化之 Sankey 桑基图的实现
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 阿里云移动端播放器高级功能介绍
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (06)金属布线——为半导体注入生命的连接
  • (33)STM32——485实验笔记
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (阿里云万网)-域名注册购买实名流程
  • (论文阅读30/100)Convolutional Pose Machines
  • .bat文件调用java类的main方法
  • .Net Redis的秒杀Dome和异步执行
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 设计模式初探
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET企业级应用架构设计系列之应用服务器
  • /boot 内存空间不够
  • ??javascript里的变量问题
  • @javax.ws.rs Webservice注解
  • [@Controller]4 详解@ModelAttribute
  • [20150904]exp slow.txt
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [C puzzle book] types
  • [c#基础]DataTable的Select方法
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体
  • [CareerCup][Google Interview] 实现一个具有get_min的Queue
  • [Gym-102091E] How Many Groups
  • [idea]关于idea开发乱码的配置