|
90 | 90 | #include <netinet/ip.h>
|
91 | 91 | #include <netlink/ifaddrs.h>
|
92 | 92 | #include <bionic_netlink.h>
|
| 93 | +#include <netdb.h> |
93 | 94 |
|
94 | 95 |
|
95 |
| - |
96 |
| -int listmacaddrs(void) { |
| 96 | +int listmacaddrs() { |
97 | 97 | struct ifaddrs *ifap, *ifaptr;
|
98 | 98 |
|
99 | 99 | if (myGetifaddrs(&ifap) == 0) {
|
100 |
| - for (ifaptr = ifap; ifaptr != NULL; ifaptr = (ifaptr)->ifa_next) { |
101 |
| - char macp[INET6_ADDRSTRLEN]; |
| 100 | + for (ifaptr = ifap; ifaptr != nullptr; ifaptr = (ifaptr)->ifa_next) { |
102 | 101 | if(ifaptr->ifa_addr!= nullptr) {
|
103 |
| - if (((ifaptr)->ifa_addr)->sa_family == AF_PACKET) { |
| 102 | + sa_family_t family = ((ifaptr)->ifa_addr)->sa_family; |
| 103 | + if (family == AF_PACKET) { |
| 104 | + //get mac info |
| 105 | + char macp[INET6_ADDRSTRLEN]; |
104 | 106 | auto *sockadd = (struct sockaddr_ll *) (ifaptr->ifa_addr);
|
105 | 107 | int i;
|
106 | 108 | int len = 0;
|
107 | 109 | for (i = 0; i < 6; i++) {
|
108 | 110 | len += sprintf(macp + len, "%02X%s", sockadd->sll_addr[i],( i < 5 ? ":" : ""));
|
109 | 111 | }
|
110 |
| - //LOGE("%s %s ",(ifaptr)->ifa_name,macp) |
111 |
| - if(strcmp(ifaptr->ifa_name,"wlan0")== 0){ |
112 |
| - LOGE("%s %s ",(ifaptr)->ifa_name,macp) |
113 |
| - freeifaddrs(ifap); |
114 |
| - return 1; |
| 112 | + LOGE("AF_PACKET %s %s ",(ifaptr)->ifa_name,macp) |
| 113 | +// if(strcmp(ifaptr->ifa_name,"wlan0")== 0){ |
| 114 | +// LOGE("%s %s ",(ifaptr)->ifa_name,macp) |
| 115 | +// freeifaddrs(ifap); |
| 116 | +// return 1; |
| 117 | +// } |
| 118 | + } else if(family == AF_INET || family == AF_INET6){ |
| 119 | + //get v4 & v6 info |
| 120 | + char host[NI_MAXHOST]; |
| 121 | + int ret = getnameinfo(ifaptr->ifa_addr, |
| 122 | + (family == AF_INET) ? sizeof(struct sockaddr_in) : |
| 123 | + sizeof(struct sockaddr_in6), |
| 124 | + host, NI_MAXHOST, |
| 125 | + nullptr, 0, NI_NUMERICHOST); |
| 126 | + if (ret != 0) { |
| 127 | + LOGE("AF_INET6 getnameinfo() failed %s ",gai_strerror(ret)) |
115 | 128 | }
|
| 129 | + LOGE("AF_INET6 %s ",host) |
116 | 130 | }
|
117 | 131 | }
|
118 | 132 |
|
|
0 commit comments