High-Tech
Santé-Médecine
Droit-Finances
CodeS-SourceS
Inscription
Plan
Connexion
Rechercher un code, un tuto, une réponse
Accueil
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Tous les langages
Delphi / Pascal
Java
Python
SQL
RegEx
Flash
ASM
IRC
Graphisme
PDA
ColdFusion
Foxpro
Flex
Visual Basic / VB.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
PHP
Forum
Tutoriels
Codes Sources
Snippets
Top membres
C/C++/C++.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Javascript
Forum
Tutoriels
Codes Sources
Snippets
Top membres
C#/.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
ASP/ASP.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Accueil
Connexion
Déposer un code
Code
Recherche
Haut
Forum
C / C++ / C++.NET
Sujet Précédent
Sujet Suivant
Ordi sur un réseau
Résolu
vangeurmasker
Messages postés
99
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
29 mars 2006
- 14 nov. 2005 à 13:22
BruNews
Messages postés
21040
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
19 nov. 2005 à 13:38
Je cherche a savoir comment récupérer le nom et l'adresse ip de tous
les ordinateurs situés sur le même réseau local que le mien.
Merci de votre aide
Afficher la suite
A voir également:
Ordi sur un réseau
Distants réseau de plat
-
Forum Delphi / Pascal
Allumer et eteindre à distance un pc de mon réseau
-
Forum VB.NET
Monitoring réseau
-
Forum Visual Basic 6
Composants réseau
-
Forum Visual Basic 6
Service reseau
✓
-
Forum C# / .NET
4 réponses
Réponse 1 / 4
BruNews
Messages postés
21040
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19 nov. 2005 à 13:38
En 1 peu plus court:
void __stdcall SearchIP(char *szname)
{
HOSTENT* host;
SOCKADDR_IN valip;
int n;
char szip[20], *c;
if(host = gethostbyname(szname)) {
// RECUPERATION DU DERNIER ENTIER n TEL QUE host->h_addr_list[n] != NULL
for(n = 0; host->h_addr_list[n+1]; n++) {}
memcpy(&valip.sin_addr.s_addr, host->h_addr_list[n], host->h_length);
if(c = inet_ntoa(valip.sin_addr)) {
strcpy(szip + 1, c);
szip[0] = '\t';
SendMessage(htxt, EM_REPLACESEL, 0, (long) szip);
}
}
}
void __stdcall PcEnumReso(NETRESOURCE *nr)
{
HANDLE hEnum;
DWORD count = -1;
DWORD bufsize = 16384;
NETRESOURCE *NetRes;
if(WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONTAINER, nr, &hEnum)) return;
NetRes = (LPNETRESOURCE) VirtualAlloc(0, bufsize, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
if(!NetRes) goto closeENUM;
while(!WNetEnumResource(hEnum, &count, NetRes, &bufsize)) {
while(count--) {
if(*((WORD*)NetRes[count].lpRemoteName) == 0x5C5C) { // 2 premiers char == '\\'
SendMessage(htxt, EM_REPLACESEL, 0, (long) (NetRes[count].lpRemoteName + 2));
SearchIP(NetRes[count].lpRemoteName + 2);
SendMessage(htxt, EM_REPLACESEL, 0, (long) "\r\n");
} // DESSOUS RECURRENCE POUR TROUVER L'ENSEMBLE DES PCs
if(NetRes[count].dwUsage & RESOURCEUSAGE_CONTAINER) PcEnumReso(&NetRes[count]);
}
}
VirtualFree(NetRes, 0, MEM_RELEASE);
closeENUM: WNetCloseEnum(hEnum);
}
APPEL:
SetWindowText(htxt, 0);
PcEnumReso(0);
ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Réponse 2 / 4
yoyo269
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
2
14 nov. 2005 à 18:58
J'ai déjà fait ça sur un de mes progs.
Regarde dans mes sources, c'est le "Petit chat assez complet...".
Après regarde dans le fichier "VoirRéseau.h", si je me trompe pas.
Mais avant essaie le prog pour voir si c'est bien ce que tu veux.
YOYO, @+.
YOYO
Réponse 3 / 4
BruNews
Messages postés
21040
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
14 nov. 2005 à 22:32
HWND htxt; // EDIT SUR LEQUEL JE METS RESULTAT
HANDLE hthrd = 0;
DWORD thrdID;
char szERROR[] = "ERREUR";
void __stdcall SearchIP(char *Tmp)
{
HOSTENT* ip_resolue;
SOCKADDR_IN valip;
int c;
char IPAdress[20];
ip_resolue = gethostbyname(Tmp);
if(ip_resolue) {
// RECUPERATION DU DERNIER ENTIER 'c' TEL QUE ip_resolue->h_addr_list[c] != NULL
for(c = 0; ip_resolue->h_addr_list[c+1]; c++) {}
memcpy(&valip.sin_addr.s_addr, ip_resolue->h_addr_list[c], ip_resolue->h_length);
IPAdress[0] = '\t';
strcpy(IPAdress + 1, inet_ntoa(valip.sin_addr));
SendMessage(htxt, EM_REPLACESEL, 0, (long) IPAdress);
}
}
void PcEnumReso(NETRESOURCE *nr)
{
HANDLE hEnum;
DWORD Result;
DWORD count = -1;
DWORD BufferSize = 0;
DWORD ReturnVal = 0;
NETRESOURCE *NetRes;
Result = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONTAINER, nr, &hEnum);
if(Result) return;
NetRes = (LPNETRESOURCE) VirtualAlloc(0, 1024, MEMDISPO, PAGE_READWRITE);
while(1) {
ReturnVal = WNetEnumResource(hEnum, &count, NetRes, &BufferSize);
if(ReturnVal == ERROR_MORE_DATA) { // On recalcul la taille du Buffer
count = -1;
VirtualFree(NetRes, 0, MEM_RELEASE);
NetRes = (LPNETRESOURCE) VirtualAlloc(0, BufferSize, MEMDISPO, PAGE_READWRITE);
ReturnVal = WNetEnumResource(hEnum, &count, NetRes, &BufferSize);
}
if(ReturnVal) break;
while(count--) {
if(*((WORD*)NetRes[count].lpRemoteName) == 0x5C5C) { // 2 premiers char == '\\'
SendMessage(htxt, EM_REPLACESEL, 0, (long) (NetRes[count].lpRemoteName + 2));
SearchIP(NetRes[count].lpRemoteName + 2);
SendMessage(htxt, EM_REPLACESEL, 0, (long) "\r\n");
}
// RECURRENCE POUR TROUVER L'ENSEMBLE DES PCs
if(NetRes[count].dwUsage & RESOURCEUSAGE_CONTAINER) PcEnumReso(&NetRes[count]);
}
if(ReturnVal == ERROR_NO_MORE_ITEMS) {
VirtualFree(NetRes, 0, MEM_RELEASE);
WNetCloseEnum(hEnum);
}
}
VirtualFree(NetRes, 0, MEM_RELEASE);
WNetCloseEnum(hEnum);
}
Appeler ainsi:
PcEnumReso(0);
ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Réponse 4 / 4
vangeurmasker
Messages postés
99
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
29 mars 2006
19 nov. 2005 à 13:28
merci brunew pour ta source mais je ne sait pas quoi passer comme parametre a la fonction (NETRESOURCE *nr);
J'utilise
Votre réponse
Discussions similaires
creer un jeu de morpion avec une interface graphic en reseau
dekiss
-
22 mars 2012 à 11:54
Julien39
-
22 mars 2012 à 13:18
[Clos] Réseau
ss1989
-
5 juin 2012 à 17:12
CptPingu
-
5 juin 2012 à 17:42
Comment jouer contre un ordinateur
cs_boubou45
-
27 nov. 2003 à 14:34
GoldenEye
-
27 nov. 2003 à 21:07
Lister les ordinateurs du réseau
arnaud2006
-
31 mai 2009 à 12:17
arnaud2006
-
1 juin 2009 à 14:46
connexion vb6 avec access sur un reseau distant
valeryht
-
17 août 2004 à 23:25
valeryht
-
18 août 2004 à 15:18
Rejoignez-nous