fix: get src addr

modified:   src/get_interface.c
This commit is contained in:
Starnakin 2025-05-26 15:14:12 +02:00
parent 3213a56d1b
commit 1ca9e110b0

View File

@ -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;
}
}
} }
} }