Récupérer l'adresse IP de mon PC
Résolu
julow
Messages postés
2198
Date d'inscription
Statut
Membre
Dernière intervention
-
Stephen -
Stephen -
A voir également:
- Récupérer l'adresse IP de mon PC
- Ethernet n'a pas de configuration ip valide - Guide
- Comment connaître son adresse ip - Guide
- Darkino nouvelle adresse - Guide
- Mon adresse mac - Guide
- Mon pc est lent - Guide
15 réponses
Salut.
utilise inet_addr() (dans windows.h ou arpa/inet.h)
sockaddr_in a;
a.sin_addr.s_addr=htonl(INADDR_ANY);
Ton adresse IP est alors contenu dans "a.sin_addr.s_addr"
Ensuite, il faut utiliser la bonne conversion pour l'afficher sous la forme d'une IP en 4 morceau.
ensuite, pour le nom DNS, tu peux utiliser gethostbyaddr()
d'après le man, il faut plutot utiliser la structure hostent.
utilise inet_addr() (dans windows.h ou arpa/inet.h)
sockaddr_in a;
a.sin_addr.s_addr=htonl(INADDR_ANY);
Ton adresse IP est alors contenu dans "a.sin_addr.s_addr"
Ensuite, il faut utiliser la bonne conversion pour l'afficher sous la forme d'une IP en 4 morceau.
ensuite, pour le nom DNS, tu peux utiliser gethostbyaddr()
d'après le man, il faut plutot utiliser la structure hostent.
Quel est le type de INADDR_ANY ? bien entendu, c'est UNE adresse IP, en as tu plusieurs ? (tu as l'adresse réseau classique lorsque tu as ne carte, et la boucle localhost en 127.0.0.1, INADDR_ANY prend normalement l'adresse du réseau par défaut et pas la boucle locale)
Si oui, essai avec la fonction gethostbyname() avec "localhost" comme nom, et toute les adresses devraient être contenues dans la structure hostent.
Si oui, essai avec la fonction gethostbyname() avec "localhost" comme nom, et toute les adresses devraient être contenues dans la structure hostent.
Lorsque je compile mon programme j'obtiens ceci :
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\récupérer l'adresse ip\récupérer l'adresse ip\récupérer l'adresse ip.cpp(11) : error C2664: 'inet_ntoa' : impossible de convertir le paramètre 1 de 'u_long' en 'in_addr'
Aucun constructeur n'a pu prendre le type de source, ou la résolution de la surcharge du constructeur était ambiguë
et ligne 11 j'ai :
inet_ntoa(htonl(INADDR_ANY));
Autre chose, pour récupérer et stocker ce résultat je peux utiliser une variable chaine de caractère comme ceci :
adresseIP=inet_ntoa(htonl(INADDR_ANY)); ?
Après il me resterait à analyser ce tableau avec des boucle du genre TANTQUE pour en isoler les 4 parties...
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\récupérer l'adresse ip\récupérer l'adresse ip\récupérer l'adresse ip.cpp(11) : error C2664: 'inet_ntoa' : impossible de convertir le paramètre 1 de 'u_long' en 'in_addr'
Aucun constructeur n'a pu prendre le type de source, ou la résolution de la surcharge du constructeur était ambiguë
et ligne 11 j'ai :
inet_ntoa(htonl(INADDR_ANY));
Autre chose, pour récupérer et stocker ce résultat je peux utiliser une variable chaine de caractère comme ceci :
adresseIP=inet_ntoa(htonl(INADDR_ANY)); ?
Après il me resterait à analyser ce tableau avec des boucle du genre TANTQUE pour en isoler les 4 parties...
dans la page de man :
donc, un bon cast bien bourrin devrai fonctionner, ou alors :
struct in_addr { unsigned long int s_addr; }
donc, un bon cast bien bourrin devrai fonctionner, ou alors :
in_addr tmp;tmp.s_addr=htonl(INADDR_ANY);puis tu affect :
adresseIP=inet_ntoa(tmp);Pourquoi veux tu isoler les 4 parties ?
Avec ce code :
#include "stdafx.h"
#include "windows.h"
int _tmain( int argc, _TCHAR* argv[] )
{
char adresseIP;
in_addr tmp;
tmp.s_addr=htonl(INADDR_ANY);
adresseIP=inet_ntoa(tmp);
adresseIP;
}
J'ai encore cette erreur...
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\récupérer l'adresse ip\récupérer l'adresse ip\récupérer l'adresse ip.cpp(13) : error C2440: '=' : impossible de convertir de 'char *' en 'char'
Aucun contexte dans lequel cette conversion est possible
En c# j'aurais déclaré adresseIP en string mais ya pas ça en c++ alors je sais pas comment faire...
Je veux récupérer l'adresse IP en 4 partie après car il va me faloir ensuite utiliser la partie host pour que le DNS me fournisse un hostname en fonction de l'adresse IP (et plus particulièrement de la partie host...)
NB : et si la machine possède plusieurs carte réseau... comment le programme va t-il gérer cela??
#include "stdafx.h"
#include "windows.h"
int _tmain( int argc, _TCHAR* argv[] )
{
char adresseIP;
in_addr tmp;
tmp.s_addr=htonl(INADDR_ANY);
adresseIP=inet_ntoa(tmp);
adresseIP;
}
J'ai encore cette erreur...
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\récupérer l'adresse ip\récupérer l'adresse ip\récupérer l'adresse ip.cpp(13) : error C2440: '=' : impossible de convertir de 'char *' en 'char'
Aucun contexte dans lequel cette conversion est possible
En c# j'aurais déclaré adresseIP en string mais ya pas ça en c++ alors je sais pas comment faire...
Je veux récupérer l'adresse IP en 4 partie après car il va me faloir ensuite utiliser la partie host pour que le DNS me fournisse un hostname en fonction de l'adresse IP (et plus particulièrement de la partie host...)
NB : et si la machine possède plusieurs carte réseau... comment le programme va t-il gérer cela??
Et si, string existe en C++ !
#include <string>
puis :
std::string adesseIP=inet...
une chaine de caratère, c'est un pointeur sur un caractère, donc de type char* pas char !
Si le PC a plusieurs cartes réseau, il prend une adresse au hasard.
Voir gethostbyname et struct hostent si tu veux toutes les récupérer.
Le C# il vau mieu éviter.
#include <string>
puis :
std::string adesseIP=inet...
une chaine de caratère, c'est un pointeur sur un caractère, donc de type char* pas char !
Si le PC a plusieurs cartes réseau, il prend une adresse au hasard.
Voir gethostbyname et struct hostent si tu veux toutes les récupérer.
Le C# il vau mieu éviter.
Désolé de m'incruster dans la conversation mais j'ai entendu dire que lorsqu'il y avait plusieur carte réseau, l'addresse ip était choisie au hasard ? L'adresse ip ne peut elle pas rester statique (fixe) malgrés plusieurs carte réseau ? Peut on alors par inversement choisir une autre adresse ip malgrés que l'on posséde qu'une carte réseau ? car j'ai entendu qu'il existerait des adresses ip qui changerai a chaque connexe=ion et sans doute elle serai défini par le serveur dns.
Merci de bien vouloir me répondre car je n'ai jamais trouvé de réponse claire dessus.
Merci de bien vouloir me répondre car je n'ai jamais trouvé de réponse claire dessus.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu compile en quoi ?
fait une recherche sur le disque dur de string.h, il doit être dans include.
Jean, j'ai rien compris !
fait une recherche sur le disque dur de string.h, il doit être dans include.
Jean, j'ai rien compris !
Je compile avec Visual C++. Donc en mode c++ (normal quoi...).
Le header string.h est bien présent mais pourtant il est sauté lors de l'exécution... étrange! On me dit de recompiler l'en tête ou d'ajouter le header stdafx.h (ce qui est déjà fait...).
Je comprends plus rien là!
Voici mon code actuel :
#include <string.h>
#include <stdafx.h>
#include <windows.h>
int _tmain( int argc, _TCHAR* argv[] )
{
string adresseIP;
in_addr tmp;
tmp.s_addr=htonl(INADDR_ANY);
adresseIP = inet_ntoa(tmp);
adresseIP;
}
Le header string.h est bien présent mais pourtant il est sauté lors de l'exécution... étrange! On me dit de recompiler l'en tête ou d'ajouter le header stdafx.h (ce qui est déjà fait...).
Je comprends plus rien là!
Voici mon code actuel :
#include <string.h>
#include <stdafx.h>
#include <windows.h>
int _tmain( int argc, _TCHAR* argv[] )
{
string adresseIP;
in_addr tmp;
tmp.s_addr=htonl(INADDR_ANY);
adresseIP = inet_ntoa(tmp);
adresseIP;
}
soit, mais tu l'ajoute apres ton stdafx.h
En plus, moi je t'avai dit d'inclure <string> pas <string.h>, tu fait du C++.
Et n'oublie pas le std:: devant string lors de la déclaration !
En plus, moi je t'avai dit d'inclure <string> pas <string.h>, tu fait du C++.
Et n'oublie pas le std:: devant string lors de la déclaration !
Lorsque je fais comme tu le dis, le compilateur de VC++ 2008 express me donne tout ceci comme message d'erreur et warning...
------ Début de la génération : Projet : test, Configuration : Debug Win32 ------
Compilation en cours...
test.cpp
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(1) : warning C4627: '#include <string>' : ignoré lors de la recherche d'une utilisation d'un en-tête précompilé
Ajoutez la directive à 'stdafx.h' ou régénérez l'en-tête précompilé
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(2) : warning C4627: '#include <windows.h>' : ignoré lors de la recherche d'une utilisation d'un en-tête précompilé
Ajoutez la directive à 'stdafx.h' ou régénérez l'en-tête précompilé
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(5) : error C2653: 'std' : n'est pas un nom de classe ni d'espace de noms
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(5) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'adresseIP'
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(5) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(5) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(9) : error C2065: 'in_addr' : identificateur non déclaré
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(9) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'tmp'
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(9) : error C2065: 'tmp' : identificateur non déclaré
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(10) : error C2065: 'tmp' : identificateur non déclaré
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(10) : error C2228: la partie gauche de '.s_addr' doit avoir un class/struct/union
le type est ''unknown-type''
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(10) : error C2065: 'INADDR_ANY' : identificateur non déclaré
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(10) : error C3861: 'htonl' : identificateur introuvable
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(11) : error C2653: 'std' : n'est pas un nom de classe ni d'espace de noms
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(11) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'adresseIP'
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(11) : error C2065: 'tmp' : identificateur non déclaré
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(11) : error C3861: 'inet_ntoa' : identificateur introuvable
Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\stagiaire\Mes documents\Visual Studio 2008\Projects\test\test\Debug\BuildLog.htm"
test - 15 erreur(s), 2 avertissement(s)
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
Et voici mon code...
#include <string>
#include <windows.h>
#include <stdafx.h>
std::string adresseIP;
int _tmain( int argc, _TCHAR* argv[] )
{
in_addr tmp;
tmp.s_addr=htonl(INADDR_ANY);
std::string adresseIP = inet_ntoa(tmp);
}
------ Début de la génération : Projet : test, Configuration : Debug Win32 ------
Compilation en cours...
test.cpp
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(1) : warning C4627: '#include <string>' : ignoré lors de la recherche d'une utilisation d'un en-tête précompilé
Ajoutez la directive à 'stdafx.h' ou régénérez l'en-tête précompilé
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(2) : warning C4627: '#include <windows.h>' : ignoré lors de la recherche d'une utilisation d'un en-tête précompilé
Ajoutez la directive à 'stdafx.h' ou régénérez l'en-tête précompilé
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(5) : error C2653: 'std' : n'est pas un nom de classe ni d'espace de noms
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(5) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'adresseIP'
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(5) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(5) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(9) : error C2065: 'in_addr' : identificateur non déclaré
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(9) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'tmp'
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(9) : error C2065: 'tmp' : identificateur non déclaré
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(10) : error C2065: 'tmp' : identificateur non déclaré
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(10) : error C2228: la partie gauche de '.s_addr' doit avoir un class/struct/union
le type est ''unknown-type''
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(10) : error C2065: 'INADDR_ANY' : identificateur non déclaré
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(10) : error C3861: 'htonl' : identificateur introuvable
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(11) : error C2653: 'std' : n'est pas un nom de classe ni d'espace de noms
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(11) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'adresseIP'
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(11) : error C2065: 'tmp' : identificateur non déclaré
c:\documents and settings\stagiaire\mes documents\visual studio 2008\projects\test\test\test.cpp(11) : error C3861: 'inet_ntoa' : identificateur introuvable
Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\stagiaire\Mes documents\Visual Studio 2008\Projects\test\test\Debug\BuildLog.htm"
test - 15 erreur(s), 2 avertissement(s)
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
Et voici mon code...
#include <string>
#include <windows.h>
#include <stdafx.h>
std::string adresseIP;
int _tmain( int argc, _TCHAR* argv[] )
{
in_addr tmp;
tmp.s_addr=htonl(INADDR_ANY);
std::string adresseIP = inet_ntoa(tmp);
}
mon opinion est conforté : Visual C++ c'est vraiment de la merde !
"en-tête précompilé" jamais entendu parlé de ça en C++ ! Même pas foutu de compiler des sources en iso-C++ !
Soit tu utilise un vrai compilateur C++ (gcc, borland ...) soit tu trouves quelqu'un qui s'y connait en Micro$oft (=petit mou, c'est dire).
Bonne chance.
"en-tête précompilé" jamais entendu parlé de ça en C++ ! Même pas foutu de compiler des sources en iso-C++ !
Soit tu utilise un vrai compilateur C++ (gcc, borland ...) soit tu trouves quelqu'un qui s'y connait en Micro$oft (=petit mou, c'est dire).
Bonne chance.
Je compile avec Dev Cpp 5 en mode C (car finalement pour des raisons de sécurité et de simplicité je fais ce programme en C...).
Pour ce qui est de lister les interfaces réseaux j'ai enfin réussi. Pareil pour l'adresse MAC d'ailleurs!
Mais actuellement je bloque sur l'adresse IP... L'adresse IP qui s'affiche n'est pas celle de mon interface ethernet et celle de loopback est fausse donc il y a un problème quelque part mais je ne parviens pas à voir où... Je vous tiens au courant et une fois terminé je vous donne le code source!
Pour ce qui est de lister les interfaces réseaux j'ai enfin réussi. Pareil pour l'adresse MAC d'ailleurs!
Mais actuellement je bloque sur l'adresse IP... L'adresse IP qui s'affiche n'est pas celle de mon interface ethernet et celle de loopback est fausse donc il y a un problème quelque part mais je ne parviens pas à voir où... Je vous tiens au courant et une fois terminé je vous donne le code source!
Dit nous déjà comment tu as fait pour les réseau et les adresses MAC.
D'abord j'ai utiliser la table MIB_IFTABLE pour récupérer des info sur toutes mes interfaces réseau.
Ensuite j'ai gardé seulement celle qui correspond à la carte Ethernet puis j'ai les structure MIB IPADDRTABLE et IPADDRROW pour récupérer l'adresse IP et MAC de ma carte.
Toute la doc sur ces tables et structure sont sur MSDN avec des exemples!
Ensuite j'ai gardé seulement celle qui correspond à la carte Ethernet puis j'ai les structure MIB IPADDRTABLE et IPADDRROW pour récupérer l'adresse IP et MAC de ma carte.
Toute la doc sur ces tables et structure sont sur MSDN avec des exemples!
c st un truc de fou les tronches qui y a sur ce genre de site déstiné a rendre servise aux autres ... j en suis bouche bée ^^ merci a tous les modos qui gerent la fougere dans ce domaine, j aimerais bien toucher le quart des trucs que vous pouvez aborder, vous etes vraiment fortiche les gars ^^ (j'vous kiff les gens qui s y connaisse, j aimerais bien en connaitre autant que vous ^^
juste pour féliciter les gens qui on les connaissances adéquat pour rendre service a tous ^^ merci et a bientôt ^^j'espère
Salut,
Sous Windows :
Sous Linux / MacOS :
Sous Windows :
ipconfig
Sous Linux / MacOS :
ifconfig
Nan nan nan...
Le truc c'est que je souhaite automatiser cela.
Ce que je veux c'est que en utilisant ce programme en C, la machine récupère son adresse IP et ensuite utilise celle ci pour que grâce à un Get host by adr elle puisse avoir un nom d'hôte que va lui fournir le serveur DNS (en fonction de son IP)
Donc il me faut savoir comment récupérer cette adresse IP via un script C et pas en batch.
Merci!
Le truc c'est que je souhaite automatiser cela.
Ce que je veux c'est que en utilisant ce programme en C, la machine récupère son adresse IP et ensuite utilise celle ci pour que grâce à un Get host by adr elle puisse avoir un nom d'hôte que va lui fournir le serveur DNS (en fonction de son IP)
Donc il me faut savoir comment récupérer cette adresse IP via un script C et pas en batch.
Merci!
Si ça peut aider; code Microsoft
//
// Link with IPHlpAPI.lib
//
#include <stdio.h>
#include <windows.h>
#include <iphlpapi.h>
main() {
FIXED_INFO * FixedInfo;
ULONG ulOutBufLen;
DWORD dwRetVal;
IP_ADDR_STRING * pIPAddr;
FixedInfo = (FIXED_INFO *) GlobalAlloc( GPTR, sizeof( FIXED_INFO ) );
ulOutBufLen = sizeof( FIXED_INFO );
if( ERROR_BUFFER_OVERFLOW == GetNetworkParams( FixedInfo, &ulOutBufLen ) ) {
GlobalFree( FixedInfo );
FixedInfo = (FIXED_INFO *) GlobalAlloc( GPTR, ulOutBufLen );
}
if ( dwRetVal = GetNetworkParams( FixedInfo, &ulOutBufLen ) ) {
printf( "Call to GetNetworkParams failed. Return Value: %08x\n", dwRetVal );
}
else {
printf( "Host Name: %s\n", FixedInfo -> HostName );
printf( "Domain Name: %s\n", FixedInfo -> DomainName );
printf( "DNS Servers:\n" );
printf( "\t%s\n", FixedInfo -> DnsServerList.IpAddress.String );
pIPAddr = FixedInfo -> DnsServerList.Next;
while ( pIPAddr ) {
printf( "\t%s\n", pIPAddr ->IpAddress.String );
pIPAddr = pIPAddr ->Next;
}
}
exit( 0 );
}
//
// Link with IPHlpAPI.lib
//
#include <stdio.h>
#include <windows.h>
#include <iphlpapi.h>
main() {
FIXED_INFO * FixedInfo;
ULONG ulOutBufLen;
DWORD dwRetVal;
IP_ADDR_STRING * pIPAddr;
FixedInfo = (FIXED_INFO *) GlobalAlloc( GPTR, sizeof( FIXED_INFO ) );
ulOutBufLen = sizeof( FIXED_INFO );
if( ERROR_BUFFER_OVERFLOW == GetNetworkParams( FixedInfo, &ulOutBufLen ) ) {
GlobalFree( FixedInfo );
FixedInfo = (FIXED_INFO *) GlobalAlloc( GPTR, ulOutBufLen );
}
if ( dwRetVal = GetNetworkParams( FixedInfo, &ulOutBufLen ) ) {
printf( "Call to GetNetworkParams failed. Return Value: %08x\n", dwRetVal );
}
else {
printf( "Host Name: %s\n", FixedInfo -> HostName );
printf( "Domain Name: %s\n", FixedInfo -> DomainName );
printf( "DNS Servers:\n" );
printf( "\t%s\n", FixedInfo -> DnsServerList.IpAddress.String );
pIPAddr = FixedInfo -> DnsServerList.Next;
while ( pIPAddr ) {
printf( "\t%s\n", pIPAddr ->IpAddress.String );
pIPAddr = pIPAddr ->Next;
}
}
exit( 0 );
}
Salut
pour completer marcien ipconfig va te donner l'ip en effet ainsi que l'adresse mac l'adresse physique de la carte reseau
ainsi pour le nom d'hote à partir de l'adresse ip c'est nslookup site web
exemple nslookup www.google.fr
pour l'ip à partir du nom d'hote http://pagesperso-orange.fr/korytion/linux.html#a20 c'est la commande host site web
sous nux.
exemple host www.google.fr
Cette commande n'existe que sous nux malheureusement
Pour le réseau rien ne vaut Linux
pour completer marcien ipconfig va te donner l'ip en effet ainsi que l'adresse mac l'adresse physique de la carte reseau
ainsi pour le nom d'hote à partir de l'adresse ip c'est nslookup site web
exemple nslookup www.google.fr
pour l'ip à partir du nom d'hote http://pagesperso-orange.fr/korytion/linux.html#a20 c'est la commande host site web
sous nux.
exemple host www.google.fr
Cette commande n'existe que sous nux malheureusement
Pour le réseau rien ne vaut Linux
http://www.linux-france.org/article/man-fr/man3/inet_addr-3.html
en fait, j'ai confondu, inet_addr() sert dans ce sens là :
a.sin_addr.s_addr=inet_addr("192.168.0.1");
en fait, toi, si tu veux réupérer l'IP, essai :
inet_ntoa(htonl(INADDR_ANY));
qui devrai renvoyer une chaine de caractères.
en fait, j'ai confondu, inet_addr() sert dans ce sens là :
a.sin_addr.s_addr=inet_addr("192.168.0.1");
en fait, toi, si tu veux réupérer l'IP, essai :
inet_ntoa(htonl(INADDR_ANY));
qui devrai renvoyer une chaine de caractères.
Merci Char Snipeur!!
Donc si je récapitule, (attention un noob va parler!) :
On dit avec INADDR_ANY d'utiliser l'adresse IP locale,
en faisant htonl(INADDR_ANY) on convertit l'entier long obtenu,
et en faisant inet_ntoa(htonl(INADDR_ANY)) on récupère ce résultat en chaine de caractères...
Mais je ne comprend pas l'utilité de htonl... Si inet_ntoa convertit l'adresse en chaine de caractère et que INADDR_ANY représente cette adresse locale alors à quoi sert htonl?? De plus j'ai regardé sur le net, INADDR_ANY représente UNE adresse locale... Et pas celle que la machine utilise sur le réseau, non?
(je suis un peu perdu en fait car moi je touche plus au C# qu'au C++ mais ici on m'impose d'utiliser le C++...)
Donc si je récapitule, (attention un noob va parler!) :
On dit avec INADDR_ANY d'utiliser l'adresse IP locale,
en faisant htonl(INADDR_ANY) on convertit l'entier long obtenu,
et en faisant inet_ntoa(htonl(INADDR_ANY)) on récupère ce résultat en chaine de caractères...
Mais je ne comprend pas l'utilité de htonl... Si inet_ntoa convertit l'adresse en chaine de caractère et que INADDR_ANY représente cette adresse locale alors à quoi sert htonl?? De plus j'ai regardé sur le net, INADDR_ANY représente UNE adresse locale... Et pas celle que la machine utilise sur le réseau, non?
(je suis un peu perdu en fait car moi je touche plus au C# qu'au C++ mais ici on m'impose d'utiliser le C++...)
Concrètement, dans une application en C comment dois je l'utiliser?
Merci de ton aide!!