mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 06:07:44 +00:00
LibC: Implement gethostbyname() by talking to the DNSLookupServer.
We now talk to the lookup server over a local socket and it does the lookup on our behalf. Including some retry logic, which is nice, because it seems like DNS requests disappear in the ether pretty damn often where I am.
This commit is contained in:
parent
3ecfde193a
commit
0e4a1936ca
7 changed files with 213 additions and 36 deletions
24
Userland/host.cpp
Normal file
24
Userland/host.cpp
Normal file
|
@ -0,0 +1,24 @@
|
|||
#include <netdb.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/in.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
if (argc < 2) {
|
||||
printf("usage: host <hostname>\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
auto* hostent = gethostbyname(argv[1]);
|
||||
if (!hostent) {
|
||||
printf("Lookup failed for '%s'\n", argv[1]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
char buffer[32];
|
||||
const char* ip_str = inet_ntop(AF_INET, hostent->h_addr_list[0], buffer, sizeof(buffer));
|
||||
|
||||
printf("%s is %s\n", argv[1], ip_str);
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue