Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP

yizhihongxing

Shell脚本获取本地网卡IP、mac地址、子网掩码、DNS IP、外网IP的攻略

在Shell脚本中,可以使用一些命令和工具来获取本地网卡IP、mac地址、子网掩码、DNS IP和外网IP。下面是一个完整的攻略,包含了两个示例说明。

步骤1:获取本地网卡信息

首先,我们需要获取本地网卡的信息,包括IP地址、mac地址和子网掩码。可以使用ifconfig命令来获取这些信息。以下是一个示例脚本:

#!/bin/bash

# 获取本地网卡信息
ifconfig_result=$(ifconfig)

# 提取IP地址
ip_address=$(echo \"$ifconfig_result\" | grep -oE 'inet (addr:)?([0-9]*\\.){3}[0-9]*' | grep -oE '([0-9]*\\.){3}[0-9]*')

# 提取mac地址
mac_address=$(echo \"$ifconfig_result\" | grep -oE 'ether ([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}')

# 提取子网掩码
subnet_mask=$(echo \"$ifconfig_result\" | grep -oE 'netmask ([0-9]*\\.){3}[0-9]*' | grep -oE '([0-9]*\\.){3}[0-9]*')

# 输出结果
echo \"IP地址: $ip_address\"
echo \"MAC地址: $mac_address\"
echo \"子网掩码: $subnet_mask\"

步骤2:获取DNS IP和外网IP

接下来,我们需要获取DNS IP和外网IP。可以使用nslookup命令来获取DNS IP,使用curl命令来获取外网IP。以下是一个示例脚本:

#!/bin/bash

# 获取DNS IP
dns_ip=$(nslookup google.com | grep 'Server:' | awk '{print $2}')

# 获取外网IP
external_ip=$(curl -s ifconfig.me)

# 输出结果
echo \"DNS IP: $dns_ip\"
echo \"外网IP: $external_ip\"

示例说明

示例1:获取本地网卡信息

假设我们运行上述脚本,并且本地网卡的IP地址为192.168.1.100,mac地址为00:11:22:33:44:55,子网掩码为255.255.255.0。运行脚本后,输出结果如下:

IP地址: 192.168.1.100
MAC地址: 00:11:22:33:44:55
子网掩码: 255.255.255.0

示例2:获取DNS IP和外网IP

假设我们运行上述脚本,并且本地DNS IP为8.8.8.8,外网IP为203.0.113.1。运行脚本后,输出结果如下:

DNS IP: 8.8.8.8
外网IP: 203.0.113.1

这些示例说明了如何使用Shell脚本获取本地网卡IP、mac地址、子网掩码、DNS IP和外网IP。你可以根据需要修改脚本,以适应不同的环境和要求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP - Python技术站

(0)
上一篇 2023年7月31日
下一篇 2023年7月31日

相关文章

  • javalist转json字符串

    javalist转json字符串 在Java中,我们经常需要将一个Java对象转换为JSON格式的字符串。如果这个Java对象包含一个List的话,我们也需要将这个List转换为JSON格式的字符串。那么,在Java中,如何将一个List转换为JSON格式的字符串呢?本文将会介绍两种方法。 使用JSONObject Javabean的数据结构比较复杂,因此我…

    其他 2023年3月29日
    00
  • Win10一周年更新14393.969补丁KB4015438下载地址 修复KB4013429更新问题

    Win10一周年更新14393.969补丁KB4015438下载地址 修复KB4013429更新问题攻略 1. 简介 Win10一周年更新14393.969补丁KB4015438是为了修复KB4013429更新问题而发布的补丁。本攻略将详细介绍如何下载和安装该补丁,并解决相关的更新问题。 2. 下载补丁 你可以通过以下步骤下载Win10一周年更新14393.…

    other 2023年8月5日
    00
  • js给select下拉框动态赋值

    js给select下拉框动态赋值 1.要求 在Web前端开发中,经常需要使用下拉菜单这个控件来接收用户的选择,而有时下拉菜单的内容是无法提前静态写死的,需要我们在页面加载时动态地从数据源中获取相应的列表数据,然后将其显示在下拉菜单中。 本文将着重介绍如何使用JavaScript代码从数据源中获取下拉菜单的列表数据,然后将其填充到HTML的select元素中,…

    其他 2023年3月28日
    00
  • C++实现合并两个排序的链表

    C++实现合并两个排序的链表 前言 本文介绍使用C++实现合并两个排序的链表的攻略。在介绍具体操作之前,我们需要了解一下链表的基本概念和操作。 链表基本概念和操作 链表是一种常见的数据结构,用于存储一系列的元素。每个元素都包含一个存储数据的字段和一个(或多个)指向下一个元素的指针。 链表有以下几个基本操作: 插入元素(在链表头或指定位置插入) 删除元素(删除…

    other 2023年6月27日
    00
  • ubuntu16.04下vim的安装与配置

    下面是“Ubuntu 16.04下Vim的安装与配置的完整攻略”,包括安装、配置和两个示例说明。 安装 在 Ubuntu 16.04 中,可以使用以下命令安装 Vim: sudo apt-get update sudo apt-get install vim 配置 在 Ubuntu 16.04 中,可以按照以下步骤配置 Vim: 打开终端并输入以下命令: v…

    other 2023年5月5日
    00
  • 电脑提示错误:此卷不包含可识别的文件系统的解决办法

    电脑提示错误:此卷不包含可识别的文件系统的解决办法 背景 在使用电脑的过程中,我们有时会遇到“此卷不包含可识别的文件系统”的错误提示,此时我们无法访问该存储设备中的文件,这对我们的日常操作会造成很大的困扰,本文将介绍如何解决该问题。 原因 不可识别文件系统错误提示通常出现在存储设备(如U盘、硬盘等)因为文件系统损坏或其他原因不能被电脑识别时,会导致该设备无法…

    other 2023年6月27日
    00
  • javascript严格模式详解(含严格模式与非严格模式的区别)

    JavaScript严格模式详解(含严格模式与非严格模式的区别) 什么是严格模式? JavaScript严格模式(Strict Mode)是一种在JavaScript中运行代码的特殊模式。它通过限制一些不安全的语法和行为,提供更严格的错误检查,以帮助开发者编写更可靠、更规范的代码。 如何启用严格模式? 要启用严格模式,可以在脚本文件或函数的开头添加\”use…

    other 2023年8月8日
    00
  • java多线程编程之使用Synchronized块同步方法

    当涉及多个线程并发访问共享资源时,会出现线程安全问题。使用Synchronized关键字可以实现对共享资源的访问控制,防止并发下的线程安全问题。 Synchronized锁的分类 Synchronized锁一般主要有两种类型:对象锁和类锁。其中对象锁又分为synchronized方法锁和synchronized代码块锁。 对象锁之synchronized方法…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部