The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > High Level Programming
.
google unix.com



High Level Programming Posez vos questions à propos de C, C + +, Java, SQL, et d'autres langages de programmation ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
L'adresse IP de la machine harneet2004us UNIX for Advanced & Expert Users 3 04-16-2008 04:54 PM
Obtenir l'adresse IP de machines Unix asutoshch De programmation et de script Shell 6 04-30-2006 08:14 AM
comment récupérer l'adresse IP d'une machine Mridula IP Networking 5 11-02-2005 09:21 AM
Restriction de l'accès à un ordinateur par adresse IP patch UNIX pour les nuls Questions et réponses 2 10-20-2003 02:46 PM
Changer l'adresse IP des machines kkinnon UNIX for Advanced & Expert Users 7 08-27-2002 02:17 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 08-25-2003
Ahsan Ahsan is offline
Registered User
  
 

Join Date: Aug 2003
Lieu: Australie
Messages: 9
Question Comment obtenir l'adresse IP de la machine?

Yat-il un appel API pour obtenir l'adresse IP d'une machine? Je sais que la fonction qui retourne le nom de la machine, gethostname (). Mais j'ai besoin de la propriété intellectuelle.

Merci & Regards,
Ahsan
  #2 (permalink)  
Old 08-25-2003
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Location: Ashburn, Virginia
Posts: 9115
Voir gethostbyname ()
  #3 (permalink)  
Old 10-10-2003
DreamWarrior DreamWarrior is offline
Registered User
  
 

Join Date: Oct 2003
Posts: 70
bump

Bonjour, pourriez-vous être un peu plus précis sur celui-ci. J'ai lu la page de manuel de gethostbyname et il semble être de retour à une adresse interne format générique. Cela doit être converti en un point notation adresse IP, et je ne sais pas comment le faire.

Aussi, pour étendre cela un peu, est-il possible d'obtenir les informations à partir d'un descripteur de fichier qui est une prise de courant. IE si le seul élément d'information que j'ai sur la connexion est le descripteur de fichier, puis-je obtenir le sockaddr_in structure de celle de passer à gethostbyname pour ensuite les convertir en une adresse IP?

Merci!
  #4 (permalink)  
Old 10-12-2003
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Location: Ashburn, Virginia
Posts: 9115
Re: bump

Citation:
Originally posted by DreamWarrior
Bonjour, pourriez-vous être un peu plus précis sur celui-ci. J'ai lu la page de manuel de gethostbyname et il semble être de retour à une adresse interne format générique. Cela doit être converti en un point notation adresse IP, et je ne sais pas comment le faire.
La meilleure solution pour des choses comme cela est de parcourir une source de code. Il ya une tonne de code source sur Internet. Et il ya plusieurs programmes que le format des adresses IP. Mais je suis coincé au bureau en attente d'une technologie de pointe, et je n'ai rien de mieux à faire, alors ...
Code:
#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);
}
Cela devrait fonctionner avec tout c ou c + + compilateur. Mais j'ai seulement testé sur HP-UX.

Citation:
Originally posted by DreamWarrior

Aussi, pour étendre cela un peu, est-il possible d'obtenir les informations à partir d'un descripteur de fichier qui est une prise de courant. IE si le seul élément d'information que j'ai sur la connexion est le descripteur de fichier, puis-je obtenir le sockaddr_in structure de celle de passer à gethostbyname pour ensuite les convertir en une adresse IP?

Merci!
Yow! Nous avons 4 heures le temps de réponse.

Vous ne pouvez pas faire cela portably et il exige habituellement root pouvoir. Regardez le code source de lsof. Il ne fait ce genre de choses.

Mais toutes les structures de prises de courant de ne pas stocker des adresses IP des noms de domaine
  #5 (permalink)  
Old 10-16-2003
DreamWarrior DreamWarrior is offline
Registered User
  
 

Join Date: Oct 2003
Posts: 70
Damn, le inet_ntoa ne fonctionnera pas. Je veux au moins être en mesure d'obtenir la propriété intellectuelle issue d'un appel, à accepter sur le socket .... Je vais aller chercher, à moins que vous tous s'ennuient et peuvent m'aider. Si je trouve quelque chose, je post it up ... pas un trop mauvais, ici comme un bon livre TCP pour Unix.

BTW, juste par curiosité, vous êtes à Rockville et de l'utilisation des machines HP-UX, vous avez une chance sur un contrat de la FAA?

Dernière édition par DreamWarrior; au 10.16.2003 10:09 AM..
  #6 (permalink)  
Old 10-16-2003
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Location: Ashburn, Virginia
Posts: 9115
Pourquoi ne inet_ntoa travail? Il semble à chaque fois que je l'essayer. Postez votre code, j'ai peut-être quelqu'un d'autre ou de voir quelque chose. Et il ya des dizaines de serveurs avec le code source disponible pour vous aider à trouver sur l'Internet. La plupart sont en mesure de vous connecter client des adresses IP.

Le meilleur livre de la programmation réseau UNIX Network Programming par Rich Stevens.

Je vais ignorer votre quête d'indices supplémentaires à mon identité.
  #7 (permalink)  
Old 10-23-2003
ComPlayer ComPlayer is offline
Registered User
  
 

Join Date: Oct 2003
Messages: 2
il est si difficile à lire votre source code.hehe.
Que dois-je faire pour ma première étape d'apprentissage de la programmation réseau C?
c'est peut-être pas facile de répondre.
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 08:42 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0