Wenn keine IP vorhanden Absturz
-
Ich möchte in meiner Anwendung die LAN-IP ermitteln. Dies
funktioniert auch wunderbar, solange der PC auch wirklich
eine IP bekommen hat. Ist dies jedoch einmal nicht der Fall
(Stecker gezogen o.ä.) schmiert mir meine Anwendung ab.Ich bin mir nicht sicher wie ich nun ermitteln soll ob
der PC wirklich eine IP hat, ohne gleich den Absturz
der Anwendung wieder zu verursachen.CString m_tos2; int ip1a, ip2a, ip3a, ip4a; //lanip AfxSocketInit(NULL); hostent *hEnt = 0; char hostname[20]; gethostname(hostname,20); hEnt = gethostbyname( hostname ); if ( hEnt ) { CString m_ipadresse = inet_ntoa( *(LPIN_ADDR)*hEnt->h_addr_list ); UpdateData(FALSE); sscanf(m_tos2,"%d.%d.%d.%d", &ip1a, &ip2a, &ip3a, &ip4a); } //pcname struct hostent *pHostInfo; unsigned long IPAddress = inet_addr(m_tos2); WSADATA WSAData; memset(&WSAData, 0, sizeof(WSAData)); if(::WSAStartup(MAKEWORD(1, 0), &WSAData) == FALSE) { pHostInfo = ::gethostbyaddr(reinterpret_cast<char *>(&IPAddress),sizeof(unsigned long),AF_INET); } if(!pHostInfo) { WSACleanup(); } CString testname ="Name des PC: "; testname+=pHostInfo->h_name;Setze ich m_tos2 auf 127.0.0.1 wenn m_tos2=="" ist, dann habe ich
den PC-Namen wiederum mit dem wert "localhost" belegt was ja in
Bezug auf die IP richtig ist, aber der PC hat ja auch einen eigenen
namen...
Boah steh ich auf dem Schlauch !!
-
Hat sich scheinbar erledigt war im falschen Codeteil. Habe den
PC-Namen ja doch anders ermittelt hals hier beschrieben.
Wenn ich nicht über die IP gehe um den Namen zu holen ist alles i.O.
-
Na denn

(Beim Ursprungspost wäre die Angabe der Zeile in der die Anwendung abschmiert interessant gewesen ;D)