[C++] IP Ausgeben

moinsen Freunde der Sonne,

ja wie ich oben angedeutet habe hatte ich zuerst auch so meine Schwierigkeiten.. weil er dann plötzlich gar nix mehr kannte kein cout kein getch.. ich habe dann eine neues Projekt win32 consolen apllication gemacht und dann die main gealssen dort den Quelltext der anderem main reinkopiert dann laufengelassen.
Dann kammen natürlich lauter Fehler die ich dann aber nacheinander durch einzelnens includieren der Header beseitigt habe.
Keine Ahnung wieso es nicht auf Anhieb ging aber kannst es ja auch mal versuchen.


gruss sonnen könig sand13r :D
 
ja? Wieso auch nicht?
Weil du ja evtl. das Platform SDK nicht installiert hast.

Es ist ja doch etwas merkwürdig das bei dir die in der windows.h definierten Typen nicht gefunden werden können.

Ich hab's jetzt mal etwas an Standard C++ angepaßt und mit MinGW kompiliert:
C++:
#include <iostream>

#include <windows.h> 

// #pragma comment(lib,"ws2_32.lib")  // für MSV C++  

using namespace std;

int main(int argc, char* argv[])
{
	
	 char hostname[255]; 
	 char *szIPAddress; 
	 WORD wVer; 
	 WSADATA wData; 
	 PHOSTENT hostinfo; 
	 wVer = MAKEWORD( 2, 0 ); 

	 if ( WSAStartup( wVer, &wData ) == 0 ) 
	 { 
	  if( gethostname ( hostname, sizeof(hostname)) == 0) 
	  { 
	   if((hostinfo = gethostbyname(hostname)) != NULL) 
	   { 
		szIPAddress = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
		
		if (szIPAddress != 0) 
			cout<<szIPAddress<<endl; 

	   } 
	  } 
	 WSACleanup(); 
	 }  

	 cin.get();

	 return 0;
}
Gruß
 
Moinsen Freunde der Sonne,


ja schwer is relativ :D da du denk ich mal nicht manuell auf die Netzwerkkarte zugreifen willst um die IP auszulesen musst du eben mit einer Funktion nachhelfen die das bietet.
Hätte auch gehofft das Windows bzw. DOS einen Befehl dafür bietet aber dem scheint ja leider nicht so zu sein.. bzw eben nur fürs Auge mit ipconfig aber das bringt ja nix wenn du damit (in nem C++ Programm )arbeiten willst.

läuft es denn schon? also mit dem Code oben mein i jetzt.. lagerst es eben in ne Funktion aus die dann aufrufst :D dann siehts au wieder aus als obs einfach wäre :D hinter ner Funktion steckt ja immer ein mehr oder weniger nicht ganz leichter Code :D

greetz da sand13r
 
Also ich habs mal getestet
kommt zwar nur meine proxyip (was auch sonst) raus aber es geht

(
#include <winsock2,h>
wirkt wunder
)
 
Zuletzt bearbeitet:
Code:
// IP.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <windows.h>
#include <conio.h>
#include <iostream>
#include <winsock2.h>
using namespace std;
#pragma comment(lib,"ws2_32.lib")  // für MSV C++

int main()
{
 char hostname[255];
 char *szIPAddress;
 WORD wVer;
 WSADATA wData;
 PHOSTENT hostinfo;
 wVer = MAKEWORD( 2, 0 );

 if ( WSAStartup( wVer, &wData ) == 0 )
 {
  if( gethostname ( hostname, sizeof(hostname)) == 0)
  {
   if((hostinfo = gethostbyname(hostname)) != NULL)
   {
    szIPAddress = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
   }
  }
 WSACleanup();
 } 

  cout<<szIPAddress<<endl;
  getch();
  return 0;
}

Da kommt nur meine lan ip ( 192.168.1.100 ) :(((((((
 
Zurück