cnslookup.pp 659 B

12345678910111213141516171819202122232425262728
  1. {$mode objfpc}
  2. uses cnetdb,sockets;
  3. var host : PHostEnt;
  4. h_addr: in_addr;
  5. s : ansistring;
  6. begin
  7. if paramcount<>1 then
  8. begin
  9. writeln(stderr,'Usage: nslookup <inet_address>');
  10. halt(1);
  11. end;
  12. s:=paramstr(1);
  13. host:=gethostbyname(pansichar(s));
  14. if not assigned(host) then
  15. begin
  16. writeln(stderr,'(mini) nslookup failed on ',s);
  17. halt(1);
  18. end;
  19. //writeln(host^.h_addr_list[0]);
  20. h_addr.s_addr:= pcardinal(host^.h_addr_list[0])^;
  21. writeln(NetAddrToStr(h_addr));
  22. // h_addr.s_addr = *((unsigned long *) host->h_addr_list[0]);
  23. // fprintf(stdout, "%s\n", inet_ntoa(h_addr));
  24. halt(0);
  25. end.