各系统查询IP地址和MAC地址的脚本或命令

文章目录

  • 一、Windows系统
    • 批处理脚本
    • 通用型命令
    • 其他可用命令
  • 二、Unix系统
    • 批处理脚本
    • 常用查询命令

一、Windows系统

批处理脚本

cls&@echo off
title Windows查询当前主机的IP和MAC地址
cd /D "%~dp0"
wmic nicconfig where "IPEnabled=TRUE" get IPAddress,MACAddress
wmic nicconfig where "IPEnabled=TRUE" get IPAddress,MACAddress | clip
@pause

通用型命令

#查看所有适配器(网卡)信息
ipconfig /all

ipconfig命令官方文档

此命令将会列出所有适配器(即网卡)的信息,用户需要清楚的知道自己当前所使用的是哪个适配器,才知道具体对应的IP地址和MAC地址,否则建议直接采用Windows的可视化操作去查看:

  1. 鼠标右键右下角网络图标选择打开“网络和Internet设置”
  2. 选择网络和共享中心点击对应的连接活动网络
  3. 在弹出的网络状态窗口中点击详细信息即可
  4. 其中IPv4 地址即是IP地址、而物理地址则是对应的MAC地址

其他可用命令

#查看本地主机域名对应的IP地址
nslookup ls
#查看所有网络协议的物理地址(即MAC地址)
getmac /v

nslookup命令官方文档
getmac命令官方文档



二、Unix系统

Unix系统包含macOSLinux两大操作系统;
其中Linux又分为RedHatDebian两大发行系列,具体参见我另一篇文章:Linux发行版概念!

批处理脚本

#!/bin/bash
# --------------------------------------------------
# Get Localhost IP Address and MAC Address
# --------------------------------------------------
# 由于命令中存在不同形式的转义字符"\",所以采用"$()"执行命令语句:
IP=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}')
# 当变量"IP"值为空时赋值127.0.0.1
# 注意:-n判断为非空、-z则判断为空值
# ";"为了区分语句、不加";"只需将"then"放在下一行即可
if [ -z "${IP}" ] ; then
    IP="172.0.0.1"
fi
# 末尾的"head -n 1"为获取第一行有效信息
MAC=`ip addr | grep link/ether | awk '{print $2}' | head -n 1`
echo -e "IPAddress \t MACAddress"
echo -e "${IP} \t ${MAC}"

常用查询命令

#查看所有适配器(网卡)信息
ifconfig -a
#新内核命令:替代了net-tools工具包(2011年起net-tools工具包不再维护),即iproute2工具包整合了arp/ifconfig/netstat和route等原net-tools工具包命令!
ip addr
#上条命令可缩写成:
ip a
#仅查看IPv4地址相关信息。
ip -4 addr
#查看指定网卡的MAC地址
cat /sys/class/net/eth0/address

注意:不要听信各种问答里面的ifconfig -a查询出来的HWaddr字段后面就是MAC地址的说法,不同发行系列的Linux系统、甚至相同发行但不同大版本的系统,都不一样,例如CentOS 7系统在ether字段后面才是MAC地址,具体需要自己判断。

  • iproute2工具包官网
  • Linux IP命令使用示例

文章中若发现有误,可随时通过下方方式联系我,私信、评论皆可,我会尽快核对并修正:
点击联系我 | 点击私信我



各系统查询IP地址和MAC地址的脚本或命令_第1张图片

你可能感兴趣的:(Windows,Linux,物理地址,tcp/ip,macos,linux,ip)