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

作者: 刘小白DOER | 来源:发表于2021-01-24 23:25 被阅读0次

        本文总结六种查看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 循环读取,跟踪显示最后十行

    获取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}'`

    二.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 。

    最后,囿于知识水平有限,欢迎交流补充。

    相关文章

      网友评论

        本文标题:获取Linux IP地址的六种方法总结

        本文链接:https://www.haomeiwen.com/subject/yzpvzktx.html