| 529 | // DNS. |
| 530 | #ifdef _WIN32 |
| 531 | std::vector<IP_Address> AdapterUtils::GetDNS(const Adapter* adapter) |
| 532 | { |
| 533 | if (adapter == nullptr) |
| 534 | return {}; |
| 535 | |
| 536 | std::vector<IP_Address> collection; |
| 537 | |
| 538 | PIP_ADAPTER_DNS_SERVER_ADDRESS address = adapter->FirstDnsServerAddress; |
| 539 | while (address != nullptr) |
| 540 | { |
| 541 | if (ReadAddressFamily(address->Address.lpSockaddr) == AF_INET) |
| 542 | { |
| 543 | const sockaddr_in* sockaddr = reinterpret_cast<sockaddr_in*>(address->Address.lpSockaddr); |
| 544 | collection.push_back(std::bit_cast<IP_Address>(sockaddr->sin_addr)); |
| 545 | } |
| 546 | address = address->Next; |
| 547 | } |
| 548 | |
| 549 | return collection; |
| 550 | } |
| 551 | #elif defined(__POSIX__) |
| 552 | std::vector<IP_Address> AdapterUtils::GetDNS(const Adapter* adapter) |
| 553 | { |