La fonction gethostbyname() fait partie des fonctions de sockets standards, fournie g�n�ralement par le syst�me d'exploitation (Sous Unix et Linux en tout cas, sous Windows il s'agit d'une des fonctions des Windows sockets <winsock.h>, et pour ceux qui ont encore Windows 3.1x, il faut pour qu'elle fonctionne installer une pile de protocoles r�seaux TCP/IP).
La fonction sert � obtenir la (ou les) adresses TCP/IP associ�es � un h�te dont on connait le nom. Elle utilise diverses sources d'information pour y parvenir: - le nom de la machine locale (tel qu'affich� par des outils comme uname), et la liste des interfaces r�seaux configur�es sur la machine locale (dont l'adresse 127.0.0.1 associ�e g�n�ralement � l'interface interne de "loopback", qui ne n�cessite pas de transfert de donn�es vers une interface physique). - un fichier comme "/etc/hosts" (ou "C:\WINDOWS\hosts" sous Windows) contenant une liste de noms d'h�tes et leur adresse IP associ�e - la configuration du syst�me de r�solution de noms DNS, qui permet d'interroger un serveur DNS contenant ces informations et accessible � une adresse IP connue - les autres syst�mes de r�solution de noms, tels que NIS et NIS+, qui g�rent diverses bases de donn�es de noms dont les noms d'h�tes, de domaines, d'utilisateurs, de groupes, de services, de protocoles, de familles d'adresse, etc... La r�solution du nom utilise ces diff�rentes sources avec un ordre de priorit�, g�n�ralement d�fini sous Unix avec des fichiers de configuration tels que "/etc/nsswitch.conf", qui pr�cise dans quel ordre interroger les sources d'informations pour r�soudre les demandes de noms. G�n�ralement, la configuration standard privil�gie les sources d'information locales avant les sources distantes, pour assurer � la fois la s�curit� du syst�me (on fait plus confiance aux informations s�lectionn�es localement, qu'aux donn�es provenant d'un syst�me distant que l'on ne peut pas administrer), et la rapidit� des acc�s. Quand la fonction ne trouve pas le nom demand� apr�s avoir interroger les diff�rentes sources possibles, elle retourne une erreur. Si le serveur DNS et/ou le serveur NIS n'ont pas �t� configur�s sur la machine, la fonction se sert uniquement de la r�solution locale, via le fichier "/etc/hosts". Si ce fichier n'existe pas non plus, le syst�me ne peut pas r�soudre le nom indiqu� et la fonction retourne une erreur. Si la configuration est correcte, mais que le nom ne peut pas �tre trouv� (souvent � cause d'un probl�me d'ambiguit�, ou d'oubli de la sp�cification du domaine associ� au nom d'h�te), il en sera de m�me. Dans ton cas, gethostbyname() est utilis� par sudo pour v�rifier les droits d'acc�s � ses fonctions, car normalement c'est une fonction privil�gi�e, n�cessitant une authorisation avant d'acc�der � un autre compte utilisateur. Hors cette authorisation ne peut �tre fournie automatiquement que si l'utilisateur est connect� depuis un compte dit "de confiance" (tel qu'autoris� par l'administrateur du syst�me). La v�rification des droits d'acc�s cherche donc � v�rifier si l'add�s se fait depuis la machine locale (dans ce cas, les droits d'acc�s sont v�rifi�s localement depuis la base locale d'informations sur l'utilisateur connect�), ou depuis une machine distante autoris�e par l'administrateur. Dans ton cas, il semble que le nom local de ta machine "DreadKnight" soit incorrectement configur� dans toutes les couches du syst�me. Si tu viens de changer le nom de la machine (v�rifie ce nom affich� par "uname -n"), il faut peut-�tre red�marrer la machine pour que l'ensemble des services r�seaux soient red�marr�s en consid�rant le nouveau nom. Mais il est possible �galement que le client NIS ou DNS soient mal configur�, et indique un serveur de r�solution de nom inaccessible. V�rifie aussi si les interfaces r�seaux sont bien d�marr�es et configur�es avec une commande de type "ifconfig -a" (les interfaces doivent �tre "UP" et "RUNNING", et leurs adresses r�seaux bien d�finies, et avec le bon netmask, pour permettre d'atteindre un �ventuel autre serveur NIS ou DNS...). V�rifies que tu "ping'es" bien les serveurs voulus sinon rev�rifies la configuration de tes interfaces r�seaux. Bon courage. ----- Original Message ----- From: "Eric LeBlanc" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Thursday, June 01, 2000 5:00 AM Subject: gethostbyname() Bonjour! J'ai une question b�b�te... la fonction gethostbyname() provient de quel fichier, et de quel package? car: DreadKnight:/usr/include$ sudo -s sudo: unable to lookup DreadKnight via gethostbyname(): No such file or directory Segmentation fault Je vous remercie! Rick ----- Eric LeBlanc [EMAIL PROTECTED] -------------- "Well, let's just say, 'if your VCR is still blinking 12:00, you don't want Linux'". --- Bruce Perens, Debian's Fearless Leader ------------ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

