Winsock : Le nom de la machine [Résolu]

Signaler
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011
-
Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
-
hello tout le monde, bon voila j'ai un petit probleme, j'essay de recuperer le nom de ma machine par Winsock (si vous connaisez un proceder plus simple je suis preneur)
donc reprenont, je fait :

#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
#include <stdio.h>
void main()
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;

char *buffer = new char[255];
char * name = new char[255];

/* Tout est configuré pour se connecter sur IRC, haarlem, Undernet. */
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr            = inet_addr("127.0.0.1");
sin.sin_family                = AF_INET;
sin.sin_port                = htons(80);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
recv(sock, buffer, sizeof(buffer), 0);

gethostbyname(name); // voila
printf("%s",name); // ou MessageBox(0,name,"nom",0);

closesocket(sock);
WSACleanup();
}

que j'utilise printf ou message box j'obtient toujour : "======================²²²²" ou "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ`y`y`y"
que faire ?? merci
sachant que le nom reel de mon PC est : "PCTEK"

5 réponses

Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Statut
Membre
Dernière intervention
5 septembre 2006

Utilise la fonction gethostname.

[getcomputername.htm GetComputerName] sous Windows devrait aussi marcher.
Messages postés
152
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
2 juin 2008
1
la fonction gethostbyname va te retourner une structure hostent. Par exemple tu peut faire gethostbyname("www.microsft.com"); et puis tu pourra ainsi retrouver des infos sur microsoft.com dont son adresse ip.

________________________________________________________________________
Hardware is what we play with until it breaks, Software is what we play with until it works !
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

c pas sa que je cherche, je cherche a utiliser un element unique du PC exemple une cle de Hardware ou quoi que se soit, car je doit filer mon prog a un mec et j'ai pas trop confiance, donc j'aimerai qu'il ne puisse l'utiliser que sur son PC. donc j'ai penser a
if(Nom PC != GetHos....)
return 0;

mais bon. je cherche une solution
Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
Dans ce cas ne prends pas le nom de la machine: il est éditable à volonté.


En revanche numéro de série du disque dur+modèle de carte
graphique+version windows+nom utilisateur windoz+etc ça donne un genre
de GUID plutôt unique même s'il n' a pas de carte réseau.
Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
Pour ton code socket ci-dessus, t'as vu que tu te connectes en local
sur le port 80? si aucun serveur HTTP n' écoute, retourne que dalle.
Aucun rapport avec le  hostname en plus.