Integer der IP Adresse
Übersicht

MichaelGBetreff: Integer der IP Adresse |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
bin neu hier im Board und will erst mal los werden, dass ich es klasse finde, wie hier geholfen wird. Konnte schon einige Probleme beheben, indem ich die Suche benutzt habe. Bin eigentlich ziemlicher Blitz Basic Newbie und stehe vor einem für mich größeren Problem (für die meisten hier wohl ein eher kleines ...). Meine Frage lautet: Wie kann ich den Integer meiner IP Adresse ermitteln? Vlt. hat jmd. nen kleines Programmchen oder kann mir den Code geben, wäre super ... Grüße Michael |
||
![]() |
Suco-XBetreff: ...... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Auf www.blitzbase.de steht bei den Netzwerk Beispielen (Zumindestens UDP)
eine Funktion bei, die eine String IP in ein Integer umwandelt. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da ich sie grad zur Hand hatte:
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 Damit du vielleicht auch begreifst wie es funktioniert: Die einzelnen Werte der IP (mit punkt getrennt) werden zuerst als separate Integer eingelesen. Ein Integer benutzt 4 Bytes speicher. 1 Byte = 8 Bit = sowas wie 00000000 Also wäre demnach ein Integer 4 mal so gross: 00000000 00000000 00000000 00000000 Als nächster schritt wird ein neuer Integer generiert. Die einzelnen Teile der IP Adresse können maximum 1 Byte gross sein (0 - 255). Wie du siehst gibt es auch 4 solche Teile. Passt also genau in einen Integer. Beispiel IP Adresse "255.255.255.255" Da man die einzelnen Werte in Integer ausgelesen hat werden sie auch als solcher im Speicher gehalten: 1. Wert (255) 00000000 00000000 00000000 11111111 2. Wert (255) 00000000 00000000 00000000 11111111 3. Wert (255) 00000000 00000000 00000000 11111111 4. Wert (255) 00000000 00000000 00000000 11111111 Mit der BB Funktion Shl, kann man die einzelnen Bits eine Stelle nach links schieben. Die grösse des Speichers bleibt aber gleich, deshalb verschwindet dann das ganz linke Bit ganz aus dem Speicher, alle anderen werden 1 nach links geschoben und rechts kommt eine neue 0 Dazu. Aus 255 Shl 1 wird dann also das: 000000 000000 000001 11111110 Da wir nun die ganzen vier eigenen Werte in einen Integer packen wollen müssen wir die einzelnen Werte an die richtige Stelle schieben ![]() Der erste Wert Shl 24 schiebt also das ganze 24 Stellen nach links. Wodurch das entsteht: 11111111 00000000 00000000 00000000 Der zweite Wert Shl 16 gibt: 00000000 11111111 00000000 00000000 Der dritte Wert Shl 8 gibt: 00000000 00000000 11111111 00000000 Der letzte Wert lassen wir wie er ist: 00000000 00000000 00000000 11111111 Alle 4 einzelnen Werte zusammen Addiert oder mit dem Or Operator verbunden gibt dann letzen Endes: 11111111 11111111 11111111 11111111 So, nun haben wir das ganze in einem Integer, fertig ![]() Das ganze als Dezimal Zahl ergibt: 4294967295 |
||
MichaelG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok, habe es kapiert, alles klar.
Danke für die Hilfe, ihr Beiden (ganz besonderen Dank an Jolinah für die ausführliche Erklärung). ![]() |
||
Kruemelator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich weis ist ein schon länger her, hatte aber das selbe Problem und eine Lösung gefunden die nicht so unübersichtlich wie der Code von Jolinah ist.
Vielleicht hilft das ja jemandem. Code: [AUSKLAPPEN] wert = HostIP(CountHostIPs("127.0.0.1"))
|
||
tecgod |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja ich find die idee mit HostIP besser,
weil ich auch grade eben das selbe Problem habe |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group