eigene IP-Adresse ermitteln

Anfängerfragen zum Programmieren mit PureBasic.
bec
Beiträge: 13
Registriert: 01.03.2007 23:00

eigene IP-Adresse ermitteln

Beitrag 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 ???


.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
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

Beitrag 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
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.
Bild
bec
Beiträge: 13
Registriert: 01.03.2007 23:00

Beitrag 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.



.
Benutzeravatar
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

Beitrag von ts-soft »

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.
Bild
Antworten