fix: get src addr
This commit is contained in:
parent
3213a56d1b
commit
ae924173d0
@ -15,12 +15,15 @@ int get_interface_name(struct host *host)
|
|||||||
|
|
||||||
for (pcap_if_t *it = alldevs; it != NULL; it = it->next) {
|
for (pcap_if_t *it = alldevs; it != NULL; it = it->next) {
|
||||||
if (!(it->flags & PCAP_IF_LOOPBACK)) {
|
if (!(it->flags & PCAP_IF_LOOPBACK)) {
|
||||||
struct sockaddr_in *tmp =
|
|
||||||
(struct sockaddr_in *)it->addresses->addr;
|
|
||||||
strcpy(host->interface, it->name);
|
strcpy(host->interface, it->name);
|
||||||
strcpy(host->ip, inet_ntoa(tmp->sin_addr));
|
for (pcap_addr_t *a = it->addresses; a != NULL; a = a->next) {
|
||||||
pcap_freealldevs(alldevs);
|
if (a->addr && a->addr->sa_family == AF_INET) { // Only IPv4
|
||||||
return 0;
|
struct sockaddr_in *sa = (struct sockaddr_in *)a->addr;
|
||||||
|
strcpy(host->ip, inet_ntoa(sa->sin_addr));
|
||||||
|
pcap_freealldevs(alldevs);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user