Seite 3 von 4
Verfasst: 18.09.2008 16:59
von alter Mann
@AND51:
geht bei mir nur bei bestimmen WEB-Seiten
z.B. nicht bei
www.hainsbergersv.de
@STARGATE
geht z.B. unter Vista Prof 64 als 32-bit Exe
Verfasst: 18.09.2008 16:59
von ts-soft
STARGÅTE Code goes Unicode-compatible
Code: Alles auswählen
InitNetwork()
Procedure.s InternetIP()
Protected Event, Zeit, Buffer$ = Space(1024)
Protected URL$ = "http://guttgame.q-soft.ch/ip.php"
Protected ConnectionID = OpenNetworkConnection(GetURLPart(URL$, #PB_URL_Site), 80)
If ConnectionID
SendNetworkString(ConnectionID, "GET "+URL$+" HTTP/1.0"+#LFCR$+#LFCR$)
Zeit = ElapsedMilliseconds()
Repeat
Delay(1)
Event = NetworkClientEvent(ConnectionID)
Until Event Or ElapsedMilliseconds()-Zeit > 3000
If Event = #PB_NetworkEvent_Data
Size = ReceiveNetworkData(ConnectionID, @Buffer$, 1024)
Buffer$ = PeekS(@Buffer$, -1, #PB_Ascii)
ProcedureReturn Mid(Buffer$,FindString(Left(Buffer$, Size), #LFCR$, 1)+3)
EndIf
EndIf
EndProcedure
Debug InternetIP()
Verfasst: 18.09.2008 17:01
von AND51
Du solltest dich allerdings schon umgewöhnen und zwar schnell.
Und zwar nicht nur an PB 4.xx, sondern wie wir alle auch an 64-Bit (falls du das brauchst).
Und das ist wirklich nicht böse gemeint, aber so eine Prozedur wie deine macht eine sehr schlechte Figur, besonders für Anfänger (nicht vergessen, wir sind hier im Ich-kanns-und-du-nicht-Subforum!!).
Deine Prozedur ist also wirklich nur für den Heimbedarf.
Verfasst: 18.09.2008 17:04
von AND51
alter Mann hat geschrieben:@AND51:
geht bei mir nur bei bestimmen WEB-Seiten
z.B. nicht bei
www.hainsbergersv.de
Nun, das geht schon; gibt ja auch 0 zurück,
weil die Seite keine IP enthält. Habe mir den Quelltext mal manuell im Editor angesehen. Nichts. Keine IP da.
Verfasst: 18.09.2008 17:22
von STARGÅTE
jo And51 ist mir ja klar
nur trotzdem würde ich dir auch empfehlen das ganze ohne Temp-Datei zu lösen...
Verfasst: 18.09.2008 17:38
von AND51
Ja, das würde ich auch gern tun, aber noch gibt es keinen PB-Befehl, der mir eine Webseite nur in den Speicher holt.
Unverständlich, denn Fred hätte spielend einfach eine Kopie dieses befehls entsprechend in PB einbauen können.
Sobald es einen derartigen Befehl gibt, kann man diese Prozedur sofort umstellen.
Verfasst: 18.09.2008 18:03
von HeX0R
Code: Alles auswählen
InitNetwork()
Debug RemoveString(StringField(GetHTTPHeader("http://h3x0r.ath.cx/Sonstiges/ShowMyIp2.php"), 5, #CR$), #LF$ + "Location: ")

Verfasst: 18.09.2008 19:25
von AND51
Die Möglichkeit die IP durch dirty-Tricks in den Header zu schleusen hat außer dir keiner.
Nur Leute mit einem eigenen PHP/Perl-fähigem Webspace.
Somit nur für wenige interessant. Das ganze auf einem Homeserver...
Aber gute Idee mein Freund! Sehr einfallsreich, die Daten im Header zu verstecken, damit mit den bisherigen mickrigen PB-Befehlen das ganze ohne Zwischenspeichern funktioniert. Aber wenn du schon deine eigene Seite hast, dann kannst du doch sicher auch einen eigenen HTTP-Header setzen, oder?
Zum Beispiel
Code: Alles auswählen
HTTP/1.0 204 No Content
ClientIP: "192.168.2.1"
Connection: Close
Verfasst: 18.09.2008 20:26
von ZeHa
AND51 hat geschrieben:Die Möglichkeit die IP durch dirty-Tricks in den Header zu schleusen hat außer dir keiner.
Nur Leute mit einem eigenen PHP/Perl-fähigem Webspace.
Warum so patzig?
Es gibt wahrlich genug Leute, die einen PHP-fähigen Webspace haben, und die, die es nicht haben, aber Programme schreiben und diese irgendwann mal veröffentlichen wollen, die können sich auch irgendwann einen zulegen. Daher ist der Vorschlag doch auch berechtigt (sagt ja keiner, daß das die einzige gültige Lösung ist).
Zudem gibt es hier im Forum ein paar User, die PHP-fähigen Webspace kostenlos zur Verfügung stellen. Da könnte man locker eine "What is my IP"-Seite drauftun, die nix anderes tut, als die IP zurückzuliefern - eben genau für diejenigen hier im Forum, die das benötigen.
Verfasst: 18.09.2008 21:05
von AND51
Patzig? So war's nicht gemeint.
Jemand, der seine eigene Internet IP braucht, kommt auch mit einer selbst erstellten Webseite dran, da hast du Recht. Ich sage auch nicht, dass seine Lösung unberechtigt sei, sondern habe ihm einen Verbesserungsvorschlag gegeben.