Bonjour a vous tous,
je voulais savoir si il existe une fonction C++ permettant derécupérer l'adresse IP de l'utilisateur du programme.
merci d'avance.
Bonjour a vous tous,
je voulais savoir si il existe une fonction C++ permettant derécupérer l'adresse IP de l'utilisateur du programme.
merci d'avance.
Salut !
tu récupères l'IP d'un machine... d'un sous-réseau, d'une passerlle, d'une entité réseau quoi... mais pas d'un utilisateur...
tu pourrais expliquer ce que tu souhaites faire exactement ?![]()
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
Salut !
Esque t'as vu ça :
http://c.developpez.com/faq/c/?page=reseau
?
++
Ca serait bien de mettre un lien dans la FAQ C++ aussi. Parce que je la vois passer toutes les deux semaines cette question.
Enfin, si tout le monde lisait la FAQ avant de poster...
en fait ce que je souhaite faire c'est récupérerl'adresse ip de la personne qui lance mon programme afin de l'afficher sur ma form dans un label.
mais meme le nom d'hote ne marche pas!
voici le code utilisé:
d'apres la msdn, le premiers parametre a donner a la fonction est un pointeur vers un buffer qui va recevoir la nom d'hote, le 2eme parametre est la taille du buffer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 char *hostname; gethostname(hostname, 100); lab_hostname->Text = hostname;
en ce qui me concerne, je ne récupere rien avec cette méthode!!
Je vois nulle part dans ton code un buffer.Envoyé par poporiding
Code : Sélectionner tout - Visualiser dans une fenêtre à part char hostname[100];
meme avec ce code, il n'y a pas de changement!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 char hostname[100]; gethostname(hostname, 100); lab_hostname->Text = hostname;
On peut voir tout ton code ?
Tu as initialisé Winsock ?
Aussi, faut appeler gethostbyname, pour avoir l'IP à partir de l'host.
tout mon code est la ... le tout est placé dans un bouton, et l'action se lance quand je click dessus.
j'ai un bouton et un label
j'ai des includes et des pragma:
#include <Winsock2.h>
#pragma comment(lib, "ws2_32.lib")
Est-ce que tu affiches lab_hostname->Text au moins ?lab_hostname->Text = hostname;
Je ne vois pas d'affichage...
Il suffit de passer hostname à la fonction PrintIp qui est dans la FAQ.
en fait le problème est que la fonction gethostname ne me retourne rien dans mon buffer, il reste vide.
c'est pourquoi rien ne s'affiche.
et le code lab_hostname->Text = "toto"; affiche toto sur le label et donc sur mon programme. Cependant ca ne marche pas avec mon hostname car je n'ai aucun retour de la fonction!
Il faut initialiser Winsock avec WSAStartup.
merci pour cette aide, j'arrive bien a voir le nom d'hote et les différentes IPs.
Cependant je n'arrive pas a envoyer mes différentes ip dans une comboBox.
Le problème vient de la convertion des données (impossible de convertir un char * en System::Object__gc *)
comment fait on pour convertir ce genre de donnée char * en System ... ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 void PrintIp(char* HostName) { struct hostent *host; struct in_addr **adr; if((host = gethostbyname(HostName)) != NULL) { // parcourt des adresses IP for (adr=(struct in_addr **)host->h_addr_list; *adr; adr++) { Form1::richTextBox_route->AppendText(inet_ntoa(**adr)); Form1::richTextBox_route->AppendText("\n"); //le pb vient de la ligne suivante! Form1::comboBox_IP->Items->Add(inet_ntoa(inet_ntoa(**adr)); } } else { // echec de la resolution printf("Echec de la resolution de nom\n"); } }
en tous cas merci pour les liens, cela m'a bien aidé.
Merci de ne pas dupliquer les sujets sur un même problème.
http://www.developpez.net/forums/sho...d.php?p=966231
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Partager