Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Terzo Anno
 Reti di Calcolatori
 aiuto problema gethostbyaddr

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
    

V I S U A L I Z Z A    D I S C U S S I O N E
marcodj85 Inserito il - 18/06/2009 : 18:59:01
ciao ragazzi, vi chiedo una mano, nell'ultimo appello un punto era di stampare sul server il nome dell'host del client con il quale si era instaurata la connessione. ora dato che si dovevano utilizzare la gethostbyname e la gethostbyaddr vi chiedo come si fà dato che non ho trovato nulla in merito nel sulle dispense del prof ne su internet...so come si stampa l'indirizzo e la porta ma non come si stampi il nome. attendo fiducioso in una vostra risposta
9   U L T I M E    R I S P O S T E    (in alto le più recenti)
juniorjak Inserito il - 22/06/2009 : 22:49:27
Citazione:
Messaggio inserito da marcodj85

grazie per la risposta anche se non era quella che cercavo....in pratica senza usare una funzione e mettendo il codice direttamente nel main lo sapevo fare anche io...il problema si pone se vuoi utilizzare una funzione tipo:

void getHostByAddr(unsigned long addr)
{
struct hostent host;
host=gethostbyaddr((char )&addr, 4, AF_INET);
const char canonical_name=host-h_name;
printf(Messaggio ricevuto dal Client %snn, canonical_name);
}

in quel caso non so come cavolo si faccia...se sapete delucidarmi in proposito



scusa ma non ho capito bene, hai problemi con la sintassi? Perchè ci sarebbe qualche errore di sintassi... In ogni caso spostare una parte del main in una funzione/procedura non è complicato.
Se non sai che errori ci siano ti passo una versione della tua funzione con qualche modifica, utilizzo linux quindi dovresti cambiare il file da includere netdb.h con quello/i per windows...


/****************************
 
 uso: hostn ip 
 (es: hostn 127.0.0.1)
 
 ****************************/

#include <netdb.h>
#include <stdio.h>
#include <malloc.h>

void getHostByAddr(struct in_addr *);

int main(int argc,char* argv[]){

struct in_addr *ip = (struct in_addr *)malloc(sizeof(struct in_addr));
ip->s_addr = inet_addr(argv[1]);

getHostByAddr(ip);

return 0;
}

void getHostByAddr(struct in_addr *ip)
{
	struct hostent *host;
	struct sockaddr_in *indirizzo;
	indirizzo = malloc(sizeof(struct sockaddr_in));
	indirizzo->sin_addr.s_addr = ip->s_addr;
	host=gethostbyaddr((char *)&indirizzo->sin_addr.s_addr, 4, AF_INET);
	char*  canonical_name=host->h_name;
	printf("Hostname: %s \n", canonical_name);
}


ovviamente puoi controllare se l'ip è valido ecc.. questo è solo l'essenziale...
ciao
noname Inserito il - 21/06/2009 : 20:28:29
If we call for the proof and we question the answers
Only the doubt will grow
Are we blind to the truth or a sign to believe in?
Only the wise will know
airbag Inserito il - 21/06/2009 : 19:48:58
Citazione:
Messaggio inserito da marcodj85

grazie mi sei stato di grande aiuto ora si che ho capito come fare....., qualcuno che mi da seriamente una mano senza criticare e basta??



In the garden of England dead moles lie inside their holes
The dead-end tunnels crumble in the rain underfoot
Innit a shame?
marcodj85 Inserito il - 21/06/2009 : 18:19:34
grazie mi sei stato di grande aiuto ora si che ho capito come fare....., qualcuno che mi da seriamente una mano senza criticare e basta??
noname Inserito il - 20/06/2009 : 16:26:02
In questo caso è la sintassi del C e il formato delle strutture che ti sfugge...
kikko Inserito il - 20/06/2009 : 12:31:01
Prof è possibile di spostare l'esame x le 15?perchè io in quel giorno(23 Giugno) alle 11 ho un esame.
marcodj85 Inserito il - 20/06/2009 : 11:25:39
grazie per la risposta anche se non era quella che cercavo....in pratica senza usare una funzione e mettendo il codice direttamente nel main lo sapevo fare anche io...il problema si pone se vuoi utilizzare una funzione tipo:

void getHostByAddr(unsigned long addr)
{
struct hostent host;
host=gethostbyaddr((char )&addr, 4, AF_INET);
const char canonical_name=host-h_name;
printf(Messaggio ricevuto dal Client %snn, canonical_name);
}

in quel caso non so come cavolo si faccia...se sapete delucidarmi in proposito
filippo Inserito il - 19/06/2009 : 01:45:30
Citazione:
Messaggio inserito da marcodj85

ciao ragazzi, vi chiedo una mano, nell'ultimo appello un punto era di stampare sul server il nome dell'host del client con il quale si era instaurata la connessione. ora dato che si dovevano utilizzare la gethostbyname e la gethostbyaddr vi chiedo come si fà dato che non ho trovato nulla in merito nel sulle dispense del prof ne su internet...so come si stampa l'indirizzo e la porta ma non come si stampi il nome. attendo fiducioso in una vostra risposta


Preciso che ci sono anche le dispense sul DNS in C (http://www.di.uniba.it/~reti/calc/laboratorio.htm).
Non dimenticarti del libro di testo: ci sono gli esempi che cerchi.
noname Inserito il - 18/06/2009 : 20:35:49
Su Google ne trovi di materiale!

http://beej.us/guide/bgnet/output/html/multipage/gethostbynameman.html

Hai il puntatore alla struttura hostent, il campo h_name contiene il nome dell'host.


// THIS HAS BEEN SUPERCEDED
// use getnameinfo() instead!

struct hostent *he;
struct in_addr ipv4addr;
struct in6_addr ipv6addr;

inet_pton(AF_INET, "192.0.2.34", &ipv4addr);
he = gethostbyaddr(&ipv4addr, sizeof ipv4addr, AF_INET);
printf("Host name: %s\n", he->h_name);

inet_pton(AF_INET6, "2001:db8:63b3:1::beef", &ipv6addr);
he = gethostbyaddr(&ipv6addr, sizeof ipv6addr, AF_INET6);
printf("Host name: %s\n", he->h_name);


Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,05 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000