GetClientIP() falsch?
-
- Beiträge: 700
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
GetClientIP() falsch?
Ich habe gerade festgestell, dass GetClientIP() bei mir vollkommen falsche IPs ermittelt (oder anzeigt)
i=GetClientIP(aid)
debug=IPString(i)
Ist das bei euch auch so?
// Edit: Bis auf Weiteres aus dem Bug-Forum in das Allgemein-Forum verschoben. @stevie1401: Bitte die Forumsregeln beachten. (Kiffi)
i=GetClientIP(aid)
debug=IPString(i)
Ist das bei euch auch so?
// Edit: Bis auf Weiteres aus dem Bug-Forum in das Allgemein-Forum verschoben. @stevie1401: Bitte die Forumsregeln beachten. (Kiffi)
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
Re: GetClientIP() falsch?
Wann rufst du den GetClientIP auf?
Ist nur gültig wenn sich sich ein Client mit dem Server verbindet oder der Server Daten empfangen hat.
Ist nur gültig wenn sich sich ein Client mit dem Server verbindet oder der Server Daten empfangen hat.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
-
- Beiträge: 700
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: GetClientIP() falsch?
Ganz genau dann. Ich speichere sogar die ID, da ich ja ständig an die Clients sende. Aber IPString(eineiD)) gibt einfach nur Unsinn aus.
Bei dir nicht?
Bei dir nicht?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
Re: GetClientIP() falsch?
Funktioniert so wie es soll...
Code: Alles auswählen
If InitNetwork() = 0
Debug "Error: Can't initialize the network !"
End
EndIf
Port = 6832
*Buffer = AllocateMemory(1000)
If CreateNetworkServer(0, Port)
Debug "PureBasic - Server: Server created (Port "+Str(Port)+")."
Repeat
SEvent = NetworkServerEvent()
If SEvent
ClientID = EventClient()
Select SEvent
Case #PB_NetworkEvent_Connect
ip = GetClientIP(ClientID)
Debug "Connected: IP " + IPString(ip)
Case #PB_NetworkEvent_Data
ip = GetClientIP(ClientID)
Debug "Data: IP " + IPString(ip)
len = ReceiveNetworkData(ClientID, *Buffer, 1000)
If Len > 0
Debug PeekS(*buffer, -1, #PB_UTF8)
;SendNetworkData(ClientID, *Buffer, len)
EndIf
Case #PB_NetworkEvent_Disconnect
Debug "Disconnected: CLientID " + ClientID
Quit = 1
EndSelect
EndIf
Until Quit = 1
Debug "PureBasic - Server: Click To quit the server."
CloseNetworkServer(0)
Else
Debug "Error: Can't create the server (port in use ?)."
EndIf
End
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: GetClientIP() falsch?
Vielleicht wird eine IPv6 ausgegeben oder durch IPString falsch konvertiert?
Michael Hack
Michael Hack Software :: Softwareentwicklung | Webentwicklung | IT-Dienstleistungen
www.michaelhacksoftware.de :: www.mh-s.de :: www.michael-hack.de
Michael Hack Software :: Softwareentwicklung | Webentwicklung | IT-Dienstleistungen
www.michaelhacksoftware.de :: www.mh-s.de :: www.michael-hack.de
-
- Beiträge: 700
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: GetClientIP() falsch?
Ich benutze einen Websocketserver auf Basis von Dadido3.
https://www.purebasic.fr/german/viewto ... 8#p355088
Egal wo ich da GetClientIP() und IPString() einsetze, ich bekomme immer nur Fakeadressen.
Vielleicht weil die Netzwerkabfragen in Threads sind?
https://www.purebasic.fr/german/viewto ... 8#p355088
Egal wo ich da GetClientIP() und IPString() einsetze, ich bekomme immer nur Fakeadressen.
Vielleicht weil die Netzwerkabfragen in Threads sind?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
Re: GetClientIP() falsch?
Beispiele der Adressen ?stevie1401 hat geschrieben:ich bekomme immer nur Fakeadressen.
Sind die Adressen so, das ein bestimmter Client immer die gleiche "FakeAdresse" hat ?
Kannst du den Client mit der "FakeAdresse" anpingen ?
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
- HeX0R
- Beiträge: 3040
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Re: GetClientIP() falsch?
Oh Mann...
Hast Du den Code von Dadido3 einfach nur übernommen, oder auch verstanden?
Der *Client, den Du per CallBack bekommst, ist NICHT die ClientID!
Mit PeekI(*Client) solltest Du die ID bekommen.
Unglaublich eigentlich, dass man nicht mal erwähnt was man nutzt, aber gleich mal auf einen Bug in PB schliesst.
Hast Du den Code von Dadido3 einfach nur übernommen, oder auch verstanden?
Der *Client, den Du per CallBack bekommst, ist NICHT die ClientID!
Mit PeekI(*Client) solltest Du die ID bekommen.
Unglaublich eigentlich, dass man nicht mal erwähnt was man nutzt, aber gleich mal auf einen Bug in PB schliesst.
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
-
- Beiträge: 700
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: GetClientIP() falsch?
ich habe den Code nicht einmal im Ansatz verstanden. Bin halt kein gelernter Programmierer, sondern nur Hobby-Basic-Progger.
Geht es bitte etwas freundlicher, HeXOR?
Wenn dich meine (naiven) Fragen stören, dann ignoriere sie doch einfach.
Aber wo wir schon einmal dabei sind:
Wenn *Client NICHT die ClientID ist, warum kann ich dann dennoch an *Client erfolgreich senden?
Geht es bitte etwas freundlicher, HeXOR?
Wenn dich meine (naiven) Fragen stören, dann ignoriere sie doch einfach.
Aber wo wir schon einmal dabei sind:
Wenn *Client NICHT die ClientID ist, warum kann ich dann dennoch an *Client erfolgreich senden?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
- NicTheQuick
- Ein Admin
- Beiträge: 8807
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: GetClientIP() falsch?
Ich kenne Dadido3s Code nicht nicht, aber nutzt du bei dem überhaupt das PB-eigene SendNetworkData()? Ich glaube nicht. Das funktioniert doch mit Frames und sowas, wenn ich da kurz drüber schaue. Wenn er Daten sendet, macht er das so:
Das heißt *Client\ID ist die ClientID, mit der PB etwas anfangen kann. Die musst du dann nutzen.
Code: Alles auswählen
Result = SendNetworkData(*Client\ID, *Client\TX_Frame()\Data + *Client\TX_Frame()\RxTx_Pos, Transmit_Size)