使用“ arp -a”检索相应IP地址的MAC地址

问题描述 投票:1回答:4

我试图将手机的MAC地址转换为IP地址。

var arpStream = ExecuteCommandLine("arp", "-a");
List<string> result = new List<string>();
   while (!arpStream.EndOfStream)
  {
      var line = arpStream.ReadLine().Trim();
      result.Add(line);
  }

使用上面的代码,将其存储在以下形式的列表中:

  192.168.137.1         2e-bb-58-0a-2f-34     dynamic
  192.168.137.44        a8-3e-0e-61-3f-db     dynamic
  192.168.137.91        d4-63-c6-b2-ac-38     dynamic
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.252           01-00-5e-00-00-fc     static

我不知道如何为给定的MAC检索特定的IP。假设我的电话是具有以下物理地址的设备:a8-3e-0e-61-3f-db,如何将其IP作为字符串存储在某处?

c# string list ip-address mac-address
4个回答
0
投票

我假设您已经以某种方式获得了字符串列表(ExecuteCommandLine方法,并希望能够基于arp值对其进行过滤。正则表达式可以是一个选项,然后:


0
投票

您可以创建一个模型类来存储IP信息,例如:


0
投票
var getIP = ips.First(x => x.MAC.Equals("a8-3e-0e-61-3f-db", StringComparison.InvariantCultureIgnoreCase));
// call getIP.IPv4 will to get the IP 192.168.137.44

0
投票

您可以在C#中使用String s = ""; for (int i = 3; i < result.Count(); i++) { s = Convert.ToString(result[i]); if (s.Contains(macAddress)) { break; } } char[] ip = new char[15]; StringBuilder ipaddr = new StringBuilder(); for (int i = 0; s[i].CompareTo(' ') != 0; i++) { ipaddr.Append(s[i]); } return ipaddr;

© www.soinside.com 2019 - 2024. All rights reserved.