Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

[c++] inet_ntoa liefert falsche IP

Diskussion: [c++] inet_ntoa liefert falsche IP im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hey Leute, habe hier einen kleinen Server geschrieben der soweit einwandfrei funktioniert... ich würde nun gerne die Ip adresse ...

Antwort
Alt 11.07.11, 00:08   #1 (permalink)
 
Registriert seit: 27.03.07
<b00n> Leistung: Facit NTK
Likes: 0
Standard [c++] inet_ntoa liefert falsche IP

Anzeige

Hey Leute, habe hier einen kleinen Server geschrieben der soweit einwandfrei funktioniert... ich würde nun gerne die Ip adresse der Clients speichern.

Ich habe dazu eine Funktion geschrieben die dies eigentlich übernehmen sollte.

Code:
int client::get_ip(SOCKADDR_IN addr)
{
    char *ip;
    ip = '\0';
    ip = inet_ntoa(addr.sin_addr);
    if(ip == '\0')
    {
        cout<<"Fehler beim speichern der Ip: "<<WSAGetLastError()<<endl;
        return 1;
    }
    else
    {
        ip_adress = ip;
        cout<<"ip_adress: "<<ip_adress<<endl;
        return 0;
    }
}
aufrufen tue ich die funktion so:

Code:
rc=recvfrom(clients[i],buf,256,0,(SOCKADDR*)&remoteAddr,&remoteAddrLen);
new_client.get_ip(remoteAddr);
Eigentlich müsste ich nun die Ip des neu verbundenen Clients in "ip_adress" stehen haben, allerdings steht dort eine beliebige ip ( immer die selbe).

Zu erwarten wäre doch, dass dort, wenn ich den client von meinem rechner aus connecte, entweder die 127.0.0.1 steht, wenn ich auf localhost connecte, oder meine internet ip, wenn ich auf meinen hostname connecte ...

Wäre für Hilfe wirklich sehr dankbar, da mir google hier nicht weitergeholfen hat, wenn man dort fündig wird geht es immer darum die eigene IP abzurufen, nicht aber die IP eines clients.
<b00n> ist offline   Mit Zitat antworten
Alt 11.07.11, 01:33   #2 (permalink)
Senior Member
 
Registriert seit: 13.07.08
enkore Leistung: K 6-3enkore Leistung: K 6-3enkore Leistung: K 6-3
Likes: 85
Standard

Zitat:
Zitat von <b00n> Beitrag anzeigen
Code:
rc=recvfrom(clients[i],buf,256,0,(SOCKADDR*)&remoteAddr,&remoteAddrLen);
Tjoa spontane Vermutung: Der Client sendet falsch oder desynchronisiert. Sowas gehört in ein vernünftiges Protokoll, btw

Klassenmember ohne this zu benutzten ist auch ziemlich schlechter Stil, da so nicht mehr erkennbar ist, ob etwas eine lokale oder objektglobale Variable ist... ip_adress ist doch eine Objektvariable, oder?

<Behauptung: Du könntest auch einfach getpeername() benutzen>
__________________
"It is the human race! The deterioration of the spirit of man. Man undermining himself, causing a self-willed, self-imposed, self-evident self-destruction."
+++ BREAKING +++ Troll ertrinkt im Planschbecken +++
enkore ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 11.07.11, 16:11   #3 (permalink)
Themenstarter
 
Registriert seit: 27.03.07
<b00n> Leistung: Facit NTK
Likes: 0
Standard

oh ja getpername() ist natürlich die viel elegantere lösung .... sehr gut danke schön ! Wusste auch das es da noch was gab, aber wusste nicht mehr was...
<b00n> ist offline   Mit Zitat antworten
Alt 11.07.11, 18:47   #4 (permalink)
Senior Member
 
Registriert seit: 13.07.08
enkore Leistung: K 6-3enkore Leistung: K 6-3enkore Leistung: K 6-3
Likes: 85
Standard

Büddesehr
__________________
"It is the human race! The deterioration of the spirit of man. Man undermining himself, causing a self-willed, self-imposed, self-evident self-destruction."
+++ BREAKING +++ Troll ertrinkt im Planschbecken +++
enkore ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » [c++] inet_ntoa liefert falsche IP
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61