Czy jest wbudowane wywołanie funkcji Windows C++, które może uzyskać nazwę hosta i adres IP? Dzięki.C++ Wywołanie funkcji Windows, które pobiera lokalną nazwę hosta i adres IP
Odpowiedz
Aby uzyskać nazwę hosta można użyć: gethostname lub metody asynchronicznej WSAAsyncGetHostByName
Aby uzyskać informacje adresowe, można użyć: getaddrinfo lub wersja Unicode GetAddrInfoW
można uzyskać więcej informacji na temat komputera nazwa taka jak domena przy użyciu interfejsu Win32 API: .
Oto wieloplatformowe rozwiązanie ... Windows, Linux i MacOSX. Możesz uzyskać adres IP, port, sockaddr_in, port.
BOOL GetMyHostName(LPSTR pszBuffer, UINT nLen)
{
BOOL ret;
ret = FALSE;
if (pszBuffer && nLen)
{
if (gethostname(pszBuffer, nLen) == 0)
ret = TRUE;
else
*pszBuffer = '\0';
}
return ret;
}
ULONG GetPeerName(SOCKET _clientSock, LPSTR _pIPStr, UINT _IPMaxLen, int *_pport)
{
struct sockaddr_in sin;
unsigned long ipaddr;
ipaddr = INADDR_NONE;
if (_pIPStr && _IPMaxLen)
*_pIPStr = '\0';
if (_clientSock!=INVALID_SOCKET)
{
#if defined(_WIN32)
int locallen;
#else
UINT locallen;
#endif
locallen = sizeof(struct sockaddr_in);
memset(&sin, '\0', locallen);
if (getpeername(_clientSock, (struct sockaddr *) &sin, &locallen) == 0)
{
ipaddr = GetSinIP(&sin, _pIPStr, _IPMaxLen);
if (_pport)
*_pport = GetSinPort(&sin);
}
}
return ipaddr;
}
ULONG GetSinIP(struct sockaddr_in *_psin, LPSTR pIPStr, UINT IPMaxLen)
{
unsigned long ipaddr;
ipaddr = INADDR_NONE;
if (pIPStr && IPMaxLen)
*pIPStr = '\0';
if (_psin)
{
#if defined(_WIN32)
ipaddr = _psin->sin_addr.S_un.S_addr;
#else
ipaddr = _psin->sin_addr.s_addr;
#endif
if (pIPStr && IPMaxLen)
{
char *pIP;
struct in_addr in;
#if defined(_WIN32)
in.S_un.S_addr = ipaddr;
#else
in.s_addr = ipaddr;
#endif
pIP = inet_ntoa(in);
if (pIP)
adjust_str(pIP, pIPStr, IPMaxLen);
}
}
return ipaddr;
}
int GetSinPort(struct sockaddr_in *_psin)
{
int port;
port = 0;
if (_psin)
port = _Xntohs(_psin->sin_port);
return port;
}
To jest niesamowite, wielkie dzięki! – Stan
jak przetestować swoją funkcję GetSinIP? –
Należy pamiętać, że nazwa hosta zwrócona przez 'gethostname()' to ** nie ** koniecznie nazwa zwrócona przez rozpoznawanie nazw domen dla dowolnego interfejsu hosta! Jednak ** może ** mieć tę samą nazwę, jeśli jest skonfigurowany w ten sposób. – alk
- 1. Resolve ip na nazwę hosta
- 2. Jak uzyskać nazwę hosta z IP (Linux)?
- 3. Rozpoznawanie adresu IP nazwy hosta
- 4. przypisanie funkcji i wywołanie funkcji w C++?
- 5. Rozwiązywanie IP na nazwę hosta przy użyciu PHP
- 6. Przekieruj adres IP na nazwę domeny
- 7. Apache httpd.conf do przekierowania adresu IP na nazwę hosta
- 8. Adres IP serwera wyświetlania PHP:
- 9. WP7 Mango - Jak uzyskać adres IP dla danej nazwy hosta?
- 10. Wywołanie funkcji CUDA przez urządzenie lub hosta
- 11. Jak uzyskać nazwę komputera i adres IP za pomocą VB.NET?
- 12. Jak zmienić lokalną nazwę repozytorium na GitHub dla Windows
- 13. Funkcja, która pobiera adres() i daje wartość
- 14. Jak skonfigurować funkcję Logback, aby dodać nazwę hosta/adres IP do każdego zdarzenia dziennika?
- 15. Jak uzyskać adres IP od nazwy hosta w oknach C# 8 aplikacji Metro?
- 16. Wstawianie hosta nadrzędnego hosta ip do pliku hosta kontenera
- 17. Czy mogę zmapować nazwę hosta * i * port z/etc/hosts?
- 18. Dlaczego hashcode java.net.URL przenosi hosta na adres IP?
- 19. Wywołanie funkcji uniwersalnej C++
- 20. Jak uzyskać nazwę hosta na podstawie adresu IP?
- 21. Wykonaj wyszukiwanie DNS w celu rozwiązania nazwy hosta na adres IP za pomocą JavaScriptu
- 22. adres funkcji szablonu C++
- 23. Jak uzyskać adres rozgłoszeniowy hosta domyślnej karty sieciowej? C#
- 24. Jak uzyskać nazwę funkcji wskaźnika funkcji C
- 25. Jak zweryfikować adres IP w C#
- 26. Uzyskaj adres IP i opis adaptera za pomocą C#
- 27. Adres IPv6 według nazwy hosta
- 28. Jak rozwiązać nazwę hosta z lokalnego adresu IP w C# .NET?
- 29. Jak uzyskać adres IP z gniazda W systemie Windows
- 30. WICKET: jak uzyskać adres IP/adres IP klienta
gethostname(), getaddrinfo() – WhirlWind