IP-Adresse ermitteln und in Textfile schreiben
-
Hallo!
Ich habe ein Problem...
Und zwar möchte ich mit Hilfe einer C++ Konsolen Applikation die lokale IP-Adresse (+Subnetmask + Username) ermitteln und dann in ein Textfile schreiben!Nun gut, wie man in ein Textfile schreibt ist ja nicht so schwer. Allerdings ist das Ermitteln dieser drei Werte für mich zur Horroraufgabe geworden!
Bitte helft mir schnell!
Danke, Alex
-
Hallo,
Standard-C++ bietet keine Funktion für das Erfragen von IP-Adressen.
Welches BS verwendest du?
-
ich benutze Windows Xp und Microsoft visual C++
-
Hallo!
Ich habe mal rausgesucht womit du den Benuzernamen auslesen kannst:CHAR szUserName[80]; DWORD dwResult, cchBuff = 80; // Call the WNetGetUser function. // dwResult = WNetGetUser("z:", (LPSTR) szUserName, &cchBuff);
Ansonsten solltest du dir hier mal alles übergeordnete über Netzwerke ansehen. Wenn du C++ .NET benutzt weiß ich aus C# .NET gibt es funktionen mit denen man den Benutzernamen abfragen kann und damit auch die IPAdresse. Diese findest du auch in der MSDN Library unter allem was mit .NET zu tun hat.
Code-Hacker
-
danke!
-
Hi
um alle möglichen TCP/IP - Werte/Einstellungen des Rechners zu ermitteln, gibts bei Windows die Iphlpapi.dll.(Link zur MSDN Seite)GetIpAddrTable dürfte die Funktion sein, die du suchst.
CU
Fast_Doc
-
glaube mit gethostbyname(gethostname()) geht die lokale IP...gethostbyname()
vor GetHostByName mußt du aber glaube ich WSAStartup() und danach WSACleanup() callen ..
char HostName[100]="",*IP; WORD wVersionRequested; WSADATA wsaData; struct in_addr in; struct hostent *host; wVersionRequested = MAKEWORD( 2, 2 ); WSAStartup( wVersionRequested, &wsaData ); gethostname(HostName,sizeof(HostName)); // Computernamen kriegen host = gethostbyname(HostName); // Hostdaten kriegen memcpy((void*)&in ,host->h_addr, 4); // 4byte in in_addr struktur schreiben // 192.168.0.1 192=1Byte,168=1Byte,0=1Byte,1=1Byte IP = inet_ntoa( in ); // übersetzen der "network byte order" in den dotted string... cout << IP; WSACleanup();
gruß
[edit by flenders]
Poste doch lieber direkt die MSDN-Links - sonst wird das hier (vor allem als C/C++ Code) so unübersichtlich:
-
Fast_Doc schrieb:
Hi
um alle möglichen TCP/IP - Werte/Einstellungen des Rechners zu ermitteln, gibts bei Windows die Iphlpapi.dll.(Link zur MSDN Seite)GetIpAddrTable dürfte die Funktion sein, die du suchst.
CU
Fast_DocIP Helper API sollte die richtige Wahl sein. Damit habe ich auch alles auslesen können. Ich frage mich nur noch, wie ich zB die IP ändern kann. Also die MainIP. Hinzufügen von IPs klappt, aber das will ich nicht.
[Edit]
Noch ne kleine Info zur IP Helper API:Die Netzwerkkarte muß angeschlossen sein (sprich Netzwerkkabel drin), sonst bekommste die IP net ausgegeben.
[/Edit]