IP umwandeln, IP im Minus ..? (NEUE FRAGE AM ENDE)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Myn

Betreff: IP umwandeln, IP im Minus ..? (NEUE FRAGE AM ENDE)

BeitragSo, Apr 17, 2011 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Tag,

ich habe mal wieder eine Frage, zu einem Problem an meinem Netzwerkspiel ;D

Und zwar habe ich einen Client und einen Server.
Im Normalfall sendet jeder Client seine Daten an den Server, der wiederum alles den anderen
Clients sendet. Das funktioniert auch ohne Fehler.
Jetzt wollte ich aber für eine Bestimmte Sache es so einrichten, das jeder Client von den anderen Clients
IP+Port hat, also vom Server gesendet bekommt.

Sinn der Sachen ist das ich einen Datenaustausch ohne Server an verschiedenen Stellen einrichten kann.


Jedenfalls erkennt der Server mit Hilfe von
Code: [AUSKLAPPEN]
UDPMsgIP

die IP der Clients und sendet sie den anderen.

Mit der Funktion:
Code: [AUSKLAPPEN]
Function INT_IP(IP$)
   a1 = Int(Left(IP$, Instr(IP$, ".") - 1)) : IP$ = Right(IP$, Len(IP$) - Instr(IP$, "."))
   a2 = Int(Left(IP$, Instr(IP$, ".") - 1)) : IP$ = Right(IP$, Len(IP$) - Instr(IP$, "."))
   a3 = Int(Left(IP$, Instr(IP$, ".") - 1)) : IP$ = Right(IP$, Len(IP$) - Instr(IP$, "."))
   a4 = Int(IP$)
   Return (a1 Shl 24) + (a2 Shl 16) + (a3 Shl 8 ) + a4
End Function



kommt da aber eine andere IP raus, eine die im - ist...
Warum ist die IP anders..?



mfg
Myn
  • Zuletzt bearbeitet von Myn am Mo, Apr 18, 2011 22:50, insgesamt einmal bearbeitet

ZaP

BeitragSo, Apr 17, 2011 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
VeRSuchst Du da eine Integer IP in eine Klartext IP umzuwandeln? Das geht mit DottedIP.
Starfare: Worklog, Website (download)
 

Myn

BeitragSo, Apr 17, 2011 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
mit der funktion mache ich aus einer Klartext IP eine INTER IP... das geht auch ;D

//edit

Code: [AUSKLAPPEN]


Dest_IP$ ="***.***.*.***";
ippt = INT_IP(Dest_IP$)




Function INT_IP(IP$)
   a1 = Int(Left(IP$, Instr(IP$, ".") - 1)) : IP$ = Right(IP$, Len(IP$) - Instr(IP$, "."))
   a2 = Int(Left(IP$, Instr(IP$, ".") - 1)) : IP$ = Right(IP$, Len(IP$) - Instr(IP$, "."))
   a3 = Int(Left(IP$, Instr(IP$, ".") - 1)) : IP$ = Right(IP$, Len(IP$) - Instr(IP$, "."))
   a4 = Int(IP$)
   Return (a1 Shl 24) + (a2 Shl 16) + (a3 Shl 8 ) + a4
End Function

count-doku

BeitragSo, Apr 17, 2011 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Jap,
die Funktion macht aus normalen Integer IPs,
DottedIP macht aus Integer IPs normale IPs.

Die Funktion UDPMsgIP gibt aber schon eine Integer IP zurück,
deswegen der Fehler.

lg,
count-doku

ZaP

BeitragSo, Apr 17, 2011 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, Integer gehen von -2^31 bis 2^31, IP Adressen können in jedem Teil (= 8 Bits eines Integers) von 0 bis 255 gehen. Da Blitzbasic mit 2er Komplement Zahlen (siehe hierzu Wikipedia) arbeitet, können also IP Adressen mit besonders großen oder kleinen Werten einen besonders großen oder kleinen Integer erzeugen.
Starfare: Worklog, Website (download)
 

Myn

BeitragSo, Apr 17, 2011 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn der Server jetzt mit UDPMsgIP die Integer IP eins Clients erfährt, kann ich diese Integer Ip also nicht als "Inter" den anderen Clients senden sondern als String, das sie zu groß ist ..?

Teste ich gleich..

Holzchopf

Meisterpacker

BeitragSo, Apr 17, 2011 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch das geht. IPs haben wunderbar platz in integer variablen. Sie werden halt einfach als negativ dargestellt, wenn das vorderste Bit gesetzt ist.
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

Myn

BeitragMo, Apr 18, 2011 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Abend,

habe mal etwas weiter getestet und habe eine für mich komische Sache endeckt...

Der Server zeigt mir eine andere IP vom Client an (wenn ich sie aus einer Nachricht mit Hilfe von
UDPMsgIP lesen lasse) als wenn ich sie mir direkt mit zwei Clients Nachrichten sende und diese wiederumm
mit UDPMsgIP aus lesen lasse ..?

Warum kommen da unterschiedliche Zahlen raus?

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group