Idézet:
Originally posted by DreamWarrior
Hé, hogy mindannyian egy kicsit konkrétabb ezzel egyet. Olvastam a férfi oldalra gethostbyname, és úgy tűnik, hogy visszatér a szokásos belső címét formátumban. Ezt kell alakítani egy pont jelölő IP-címet, és nem tudom, hogyan kell csinálni.
|
A legjobb megoldás a dolgok, mint ez a böngészés néhány forráskódot. Van egy csomó forráskódot az interneten. És vannak olyan programok, amelyek több formátumú IP-címek. De én csapdázott az irodában várja a technika, és nincs semmi jobb dolgom, úgyhogy ...
Kód:
#ifdef __STDC__
#define PROTOTYPICAL
#endif
#ifdef __cplusplus
#define PROTOTYPICAL
#endif
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>
#ifdef PROTOTYPICAL
int main(int argc, char *argv[])
#else
main(argc,argv)
char *argv[];
#endif
{
char *mess;
struct hostent *hp;
int dumpall;
dumpall=0;
while(*++argv) {
if(!strcmp(*argv,(char *)"-d")) {
dumpall=!dumpall;
continue;
}
/*
* Call gethostbyname for current argument
*/
if(! (hp = gethostbyname(*argv))) {
switch(h_errno){
case HOST_NOT_FOUND:
mess=(char *)"Not Found";
break;
case TRY_AGAIN:
mess=(char *)"Time Out";
break;
case NO_RECOVERY:
mess=(char *)"No Recovery";
break;
case NO_ADDRESS:
mess=(char *)"No Address";
break;
default:
mess=(char *)"unknown error";
break;
}
printf("%s %s\n", *argv, mess);
} else {
printf("%s %s %s \n", *argv, hp->h_name,
inet_ntoa(*(struct in_addr *)(hp->h_addr)));
if(dumpall) {
printf(" addresses:\n");
while(*(hp->h_addr_list)){
printf(" %s \n",
inet_ntoa(*(struct in_addr *)*(hp->h_addr_list)++));
}
printf(" aliases:\n");
while(*(hp->h_aliases)){
printf(" %s \n",*(hp->h_aliases)++);
}
}
}
}
exit(0);
}
Ezt együtt kellene működnie a C vagy C + + fordító. De én csak tesztelt HP-UX.
Idézet:
Originally posted by DreamWarrior
Továbbá, hogy ez egy kicsit, lehetséges, hogy az információt kezdődően egy fájl leíró hogy szoftvercsatorna. Vagyis, ha az egyetlen információ van a kapcsolat a fájl-leíró, kaphatok a sockaddr_in szerkezet hogy száll át gethostbyname hogy majd alakítanunk egy IP?
Köszönöm!
|
Yow! Jelenleg 4 órás reagálási idő.
Ezt nem teheted portably, és általában megköveteli a root erejét. Nézd meg a forráskódot lsof. Teszi ilyesmi.
De minden sockets struktúrák tárolására ip-cím nem domain nevek