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 ???
.
eigene IP-Adresse ermitteln
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.
Ö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.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Oder einfach so:
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
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
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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Der Code von Hexor (siehe link) sollte auch unter Linux funktionieren, aber nicht getested.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
