Seite 1 von 1
eigene IP-Adresse ermitteln
Verfasst: 14.03.2007 22:53
von bec
Hallo,
kennt jemand von euch einen einfachen Weg seine eigene IP-Adresse zu
ermitteln und in ein Stringgadget zu schreiben ?
Unter
http://ipid.shat.net/iponly/ bekommt man mit dem Browser nur seine IP
zurückgeliefert. Wie kommt man von PureBasic aus da ran ???
.
Verfasst: 14.03.2007 23:16
von AND51
Du musst wie ein Webbrowser agieren:
Öffne eine Verbindung zu dem Server (OpenNetworkConnection) und sende ein HTTP-Request (so wie ein Browser das tut). Danach sendet der Browser dir die Daten, auch mit einem HTTP-Header davor, der Informationen enthält über die Daten, die er dir schickt. Dann musst du einfach nur die IP aus den empfangen Daten ablesen. Zum Schluss wird die Verbindung wieder geschlossen.
Verfasst: 14.03.2007 23:20
von ts-soft
Oder einfach so:
Code: Alles auswählen
Procedure.l DownloadToMem ( URL.s, *lpRam, ramsize.l )
Protected agent.s, hInet.l, hData.l, Bytes.l
agent.s = "Mozilla/4.0 (compatible; ST)"
hInet.l = InternetOpen_ ( @agent.s,0,0,0,0 )
hData.l = InternetOpenUrl_ ( hInet, @URL.s, "", 0, $8000000, 0 )
If hData > 0 : InternetReadFile_ ( hData, *lpRam, ramsize.l, @Bytes.l ) : Else : Bytes = -1 : EndIf
InternetCloseHandle_ (hInet)
InternetCloseHandle_ (hFile)
InternetCloseHandle_ (hData)
ProcedureReturn Bytes.l
EndProcedure
Define.s MyIP = Space(50)
If DownloadToMem ( "http://ipid.shat.net/iponly/", @MyIP, Len(MyIP) ) > 0
Debug Trim(RemoveString(RemoveString(RemoveString(MyIP, "</title></head>"), "<head><title>"), "<html>"))
EndIf
Gruß
Thomas
PS: DownloadToMem ist von Dige
// Nachtrag:
Da diese Version nur mit der obigen Url funktioniert, sowie bei falscher
Puffergrösse zu falschen Ergebnissen führt, hier noch mal ein link zu einer
etwas ausgefeilteren Version:
http://www.purebasic.fr/german/viewtopi ... light=myip
Verfasst: 17.03.2007 00:03
von bec
Hallo,
vielen Dank für eure Antworten
@TS-Soft: Das ist die Windowsversion. Ich hätte vieleicht dazuschreiben
sollen dass es mir um die Linuxvariante geht.
.
Verfasst: 17.03.2007 00:25
von ts-soft
Der Code von Hexor (siehe link) sollte auch unter Linux funktionieren, aber nicht getested.