我可以根据已知的 MAC 地址确定当前的 IP 吗?

2024-03-19

我有一个 shell 脚本,它使用 etherwake 来唤醒本地网络上的机器。 机器唤醒后,我不确定IP地址。

在尝试回答我自己的问题时,我想出了:

ip=$(ping -c 1 hostname | head -1 | awk '{print $3}' | sed 's/[()]//g')

该解决方案规定我知道远程计算机的主机名,这并不是那么繁重。

如果我只知道 MAC 地址,有没有办法获取 IP?


我认为没有一个命令可以做到这一点。一种黑客方法是在子网上执行 ping 扫描或广播 ping,然后查询 arp 表以获取 MAC 地址的 IP 地址。显然不是一个理想的解决方案。例子:

nmap -sP 192.168.1.0/24 >/dev/null && arp -an | grep <mac address here> | awk '{print $2}' | sed 's/[()]//g'

这里 nmap 将执行 ping 扫描并填充您的 arp 缓存。扫描完成后,可以使用 arp 命令打印 arp 表,然后使用 grep/awk 提取 IP 地址。您可以尝试用广播 ping 替换 nmap,但这可能不太可靠。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以根据已知的 MAC 地址确定当前的 IP 吗? 的相关文章

  • 何时用引号将 shell 变量括起来?

    我应该或不应该在 shell 脚本中用引号括住变量吗 例如 下列说法正确的是 xdg open URL eq 2 or xdg open URL eq 2 如果是这样 为什么 一般规则 如果它可以为空或包含空格 或实际上任何空格 或特殊字符
  • 如何通过ssh获取远程命令的退出代码

    我正在通过 ssh 从远程计算机运行脚本 ssh some cmd my script 现在 我想在本地计算机上存储 shell 脚本的退出状态 我该怎么做 假设没有任何问题ssh其本身 其退出状态是在远程主机上执行的最后一个命令的退出状态
  • 如何将一个文本文件拆分为多个 *.txt 文件?

    我有一个文本文件file txt 12 MB 包含 something1 something2 something3 something4 有没有办法分开file txt分成 12 个 txt 文件 比方说file2 txt file3 t
  • 对于任何真实数据集,数据压缩比的最小可能值是多少

    我在写信ZLIB类似于嵌入式硬件压缩器的 API 它使用 deflate 算法来压缩给定的输入流 在进一步讨论之前 我想解释一下数据压缩率 数据压缩率定义为未压缩大小与压缩大小之间的比率 压缩比通常大于一 这意味着压缩数据通常比未压缩数据小
  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • 如何在C(Linux utf8终端)中打印“盒子抽屉”Unicode字符?

    我正在尝试显示 方框图范围 2500 257F 中的 Unicode 字符 它应该是标准 utf8 Unicode 标准 版本 6 2 我根本做不到 我首先尝试使用旧的 ASCII 字符 但 Linux 终端以 utf8 显示 并且没有显示
  • 在 Linux 中重新启动时,新创建的文件变为 0 kb(数据被覆盖为空)

    我遇到了一个奇怪的问题 这让我发疯 当前的任务是在 root 用户第一次登录时启动一组文件 并在同一用户第二次登录时启动另一组文件 我决定使用 profile 和 bashrc 文件 并在第一次登录期间发生的任务结束时重新加载 bashrc
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • 为什么此 NASM 代码会打印我的环境变量?

    本学期我刚刚完成计算机体系结构课程 除其他外 我们一直在涉足 MIPS 汇编并在 MARS 模拟器中运行它 今天 出于好奇 我开始在我的 Ubuntu 机器上摆弄 NASM 基本上只是将教程中的内容拼凑起来 并感受一下 NASM 与 MIP
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • awk 在循环中使用时不打印任何内容[重复]

    这个问题在这里已经有答案了 我有一堆使用 file 1 a 1 txt 格式的文件 如下所示 A 1 B 2 C 3 D 4 并使用以下命令添加包含每个文件名称的新列 awk print FILENAME NF t 0 file 1 a 1
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记

随机推荐

  • Python Base 36 编码

    如何在 Python 中以 36 为基数对整数进行编码 然后再次解码 您尝试过维基百科的示例代码吗 def base36encode number alphabet 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Django TypeError:没有主键值的模型实例是不可散列的

    我有我的models py如下 class Article models Model date models DateTimeField null True blank True title models TextField default
  • 如何根据用户摘要生成随机 5 位数字

    大家好 我尝试根据用户总摘要生成 50 个 5 位数字 例如 用户给出 500000 然后我需要随机数 5 位乘 50 个数字等于 500000 我尝试了这个 但它不是 5 位数字 int balane 500000 int nums 50
  • 双向git镜像

    我有兴趣将本地 git 存储库设置为远程存储库的镜像 我读过一些可能相关的帖子 但主要区别是我需要对两个存储库具有读写访问权限 大多数时候 用户将针对 Repo A 进行工作 但有时他们会针对 Repo B 进行工作 并且这些需要通过服务器
  • 统计某个时间段之前和之后存在的值

    我有以下简单的表格 您也可以在SQL Fiddle here http www sqlfiddle com 9 74d8fb 3 CREATE TABLE Orders Customer TEXT Order Date DATE INSER
  • 带有 CSS 的 GWT Html 文件

    当我使用 GWT 插件创建新项目时 它会为我创建一个框架项目 在html文件中有一条注释说 考虑内联 CSS 以减少请求的文件数量 为什么我要考虑使用内联CSS 我很难将 css 放在单独的文件中而不是内联 会减少文件的大小吗 不是吗 答案
  • 检查 Wicket 中的用户代理

    我使用的是 wicket 1 5 但我无法在getClientInfo 方法 WebRequest RequestCycle get getRequest 我在其他地方看到了这段代码 WebClientInfo clientInfo Web
  • YARN 作业历史记录不可访问

    我正在使用来自源代码的最新 hadoop 版本 3 0 0 我已经启动并运行了时间轴服务 并配置了 hadoop 以将其用于作业历史记录 但是 当我单击资源管理器 UI 中的历史记录时 出现以下错误 HTTP ERROR 404 Probl
  • 如果在从开始到结束迭代时对地图元素调用擦除()会发生什么?

    在下面的代码中 我循环遍历地图并测试是否需要删除元素 擦除元素并继续迭代是否安全 或者我是否需要在另一个容器中收集密钥并执行第二个循环来调用擦除 map
  • 无法调整大小的 JFrame 包错误

    JFrame s pack 当窗口无法调整大小时 该方法不会每次都起作用 请亲自尝试一下 可能需要重试几次 import javax swing import java awt public class FramePackBug publi
  • Eclipse javadoc 注释中的错误换行

    我认为 Eclipse 内置的 Java 格式化程序中有一个小但烦人的错误 我有一个 Javadoc 注释 如下所示 stuff code mTasksBelow 其中末尾的句点位于第 81 列中 格式化程序设置为在第 80 行包装 Jav
  • 如何在Python中正确实现映射协议?

    我正在使用 python spidermonkey 它在内部使用 PyMapping Check 来识别用作全局对象 在 rt new context global 中 是否实现了映射协议 这基本上是传递给 python spidermon
  • 更改 Magento 的“新产品”模块的默认产品限制

    据我了解 默认情况下 Magento 的 新产品 模块 new phtml 显示列出的最后 8 个产品 如何更改默认值 甚至可能完全删除限制 是的 这将完全改变 新产品 模块的行为 我理解 谢谢你 新产品块 Mage Catalog Blo
  • 视频错误:V4L:找不到摄像头设备

    我正在使用 ubuntu16 04 并尝试运行 opencv 脚本 当我使用时 video capture cv2 VideoCapture 1 它给我错误视频错误 V4L 找不到相机设备 没有打开视频窗口 但当我跑步时 video cap
  • 从函数获取输入 - C++ [重复]

    这个问题在这里已经有答案了 我在 C 中遇到了一个问题 我调用了一个为事物分配一些值的函数 但这些分配在函数完成后丢失了 这是我的代码 include
  • 如何缩小 Node.js 应用程序? (服务器端node.js,而不是客户端javascript)

    我想将我所有的大型 Node js 项目 编译 成一个巨大的 javascript 文件 然后我可以使用 Node Index js 运行它并开箱即用 Thanks 您可以使用 Browserify 来完成此操作 使用 bare可以选择忽略
  • 编译器看不到接口中的默认实现?

    这是我在一个 c 项目中的代码 该项目针对 NET Core 3 0 所以我应该使用 C 8 0 和 Visual Studio 2019 16 3 9 public interface IJsonAble public string To
  • 具有 JavaScript 执行功能的 Node.js Web 浏览器

    有没有node npm该模块将抓取网页或给定 URL 的内容 并像现实生活中的 Web 浏览器一样执行和评估其 JavaScript 包括XMLHttpRequest对象和类似的东西 我以为刮刀js https www npmjs com
  • 多个可选 WHERE 参数

    我想为一组 SQL 查询创建一个过滤器 以便用户可以按最多三个值过滤 SQL SELECT 用户界面具有三个文本框 每个文本框都与 SQL 表中的列名称相关联 用户可以通过这些文本框提供一个 两个或三个标准 这是我到目前为止所拥有的 我知道
  • 我可以根据已知的 MAC 地址确定当前的 IP 吗?

    我有一个 shell 脚本 它使用 etherwake 来唤醒本地网络上的机器 机器唤醒后 我不确定IP地址 在尝试回答我自己的问题时 我想出了 ip ping c 1 hostname head 1 awk print 3 sed s g