相关疑难解决方法(0)

以编程方式获取Android设备的MAC

我需要使用Java获取我的Android设备的MAC地址.我在网上搜索过,但是我找不到任何有用的东西.

java android mac-address

80
推荐指数
7
解决办法
14万
查看次数

使用C代码获取与ifconfig相同的信息

Linux中是否有一种方法可以使用C代码获取"ifconfig eth0"返回的相同信息?我对IP地址,链接状态和MAC地址等感兴趣.

这是ifconfig的示例输出:

eth0      Link encap:Ethernet  HWaddr 00:0F:20:CF:8B:42
          inet addr:217.149.127.10  Bcast:217.149.127.63  Mask:255.255.255.192
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2472694671 errors:1 dropped:0 overruns:0 frame:0
          TX packets:44641779 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1761467179 (1679.8 Mb)  TX bytes:2870928587 (2737.9 Mb)
          Interrupt:28 
Run Code Online (Sandbox Code Playgroud)

c linux networking

29
推荐指数
5
解决办法
6万
查看次数

与getifaddrs的MAC地址

有没有办法通过接口获取MAC地址getifaddrs()

我已经有了这个,获取IP地址,但我有点想念MAC.我试图寻找信息getifaddrs(),但没有任何关于MAC地址

struct ifaddrs *iflist, *iface;

  if (getifaddrs(&iflist) < 0) 
  {
      perror("getifaddrs");
  }

  char addrp[INET6_ADDRSTRLEN];
  char macp[INET6_ADDRSTRLEN];
  int i=0;

  for (iface = iflist; iface; iface = iface->ifa_next) 
  {
    int af = iface->ifa_addr->sa_family;
    const void *addr;
    const void *mac;

      switch (af) 
      {
        case AF_INET:
          addr = &((struct sockaddr_in *)iface->ifa_addr)->sin_addr;
          break;
      //get mac address somehow?
        default:
          addr = NULL;
      }

      if (addr) 
      {
        if (inet_ntop(af, addr, addrp, sizeof addrp) == NULL)
        {
           perror("inet_ntop");
           continue; …
Run Code Online (Sandbox Code Playgroud)

c ip mac-address interface

8
推荐指数
5
解决办法
2万
查看次数

所有接口的C/C++ Linux MAC地址

我使用以下代码检索当前计算机的所有MAC地址:

ifreq ifr;
ifconf ifc;
char buf[1024];

int sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
if (sock == -1) { ... };

ifc.ifc_len = sizeof(buf);
ifc.ifc_buf = buf;
if (ioctl(sock, SIOCGIFCONF, &ifc) == -1) { ... }

ifreq *it = ifc.ifc_req;
const ifreq* const end = it + (ifc.ifc_len / sizeof(ifreq));

for (; it != end; ++it) {
    strcpy(ifr.ifr_name, it->ifr_name);
    if (ioctl(sock, SIOCGIFFLAGS, &ifr) == 0) {
        if (!(ifr.ifr_flags & IFF_LOOPBACK)) {
            if (ioctl(sock, SIOCGIFHWADDR, &ifr) == 0) {
               unsigned char mac_address[6]; …
Run Code Online (Sandbox Code Playgroud)

c linux ioctl mac-address ifconfig

7
推荐指数
1
解决办法
1万
查看次数

如何获取本地IP和MAC地址C.

可能重复:
Linux/C++:获取本地计算机的IP地址

我试图获取本地计算机的所有接口IP和MAC地址,但我不能真正成功.我需要把它放在一起,所以我知道哪个IP属于哪个MAC.

我在google上进行了很多搜索,甚至在这里,但是我找不到真正的C代码.

请你帮助我好吗?

提前致谢!我真的很感激!

c linux mac-address ip-address

5
推荐指数
3
解决办法
3万
查看次数

在 iPhone 上获取蓝牙 MAC 地址

序言
我工作的Xcode 7.0.1,斯威夫特2

我试图了解如何检索这些信息的小时数(更新、天数)。
我已经看到有一个框架CoreBluetooth可能可以帮助我。(更新,绝对不是!!)

任何的想法?Objective-c/swift/c/c++ .. 无论如何.. 是一样的。

我已经在这个答案中测试了代码,但打印:

>>> WIFI MAC 地址:02:00:00:00:00:00
>>> IPHONE 蓝牙 MAC 地址:02:00:00:00:00:ffffffff
>>> iPad 蓝牙 MAC 地址:02:00:00 :00:00:01

关于这一点,我已经阅读了官方文档

在 iOS 7 及更高版本中,如果您询问 iOS 设备的 MAC 地址,系统会返回值 02:00:00:00:00:00。如果您需要识别设备,请改用 UIDevice 的 identifierForVendor 属性。(需要标识符用于自己的广告目的的应用程序应考虑改用 ASIdentifierManager 的 AdvertisingIdentifier 属性。)

问题是:如果其他设备可以读取我的蓝牙mac地址,为什么我不能?
我认为应该有办法做到这一点,当然。

我也尝试了这个答案(和其他答案)的片段,但我从来没有得到真正的 mac 地址。

我知道要了解 mac 的蓝牙信息,我可以在终端上运行:

system_profiler SPBluetoothDataType | sed -n "/Apple Bluetooth Software Version\:/,/Manufacturer\:/p"
Run Code Online (Sandbox Code Playgroud)

并且只检索 mac 地址我可以“管道”到上一个命令:

egrep -o '([[:xdigit:]]{1,2}-){5}[[:xdigit:]]{1,2}'
Run Code Online (Sandbox Code Playgroud)

我在问.. 我可以在 iPhone 上以编程方式运行这个命令吗?

实际上,我已经尝试过,使用这个伪代码:

script …
Run Code Online (Sandbox Code Playgroud)

c c++ bluetooth objective-c swift

5
推荐指数
1
解决办法
2409
查看次数

如何使用 C 程序获取机器的 MAC 地址?

这个问题与这个问题完全相同:How to get MAC address of your machine using a C program?

“我正在 Ubuntu 上工作。我如何使用 C 程序获取我的机器的 MAC 地址或接口(如 eth0)。”


现在,我通常不接触 C...但在这种情况下我必须这样做。由于我真的不知道以下代码(取自上面链接的答案)中发生了什么,因此我需要一些帮助。

#include <sys/socket.h>
#include <sys/ioctl.h>
#include <linux/if.h>
#include <netdb.h>
#include <stdio.h>

int main()
{
  struct ifreq s;
  int fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);

  strcpy(s.ifr_name, "eth0");
  if (0 == ioctl(fd, SIOCGIFHWADDR, &s)) {
    int i;
    for (i = 0; i < 6; ++i)
      printf(" %02x", (unsigned char) s.ifr_addr.sa_data[i]);
    puts("\n");
    return 0;
  }
  return 1;
}
Run Code Online (Sandbox Code Playgroud)

我需要一个将 MAC 地址作为字符串返回的函数,而不是打印 MAC …

c linux chromeless jsctypes

3
推荐指数
1
解决办法
1万
查看次数