| Autor |
Beitrag |
Tomok
      
Beiträge: 35
|
Verfasst: Mo 21.04.03 10:19
Ich nutze zur Zeit die GameNet.pas Unit ( www.zoksoftware.de/).
Ich habe folgende 2 Fragen :
1.Eignet sich die Unit auch für Spiele über's Internet ?
2.Wie finde ich heraus, welche IP ich im Internet habe ?
|
|
Moritz M.
      
Beiträge: 1672
|
Verfasst: Mo 21.04.03 10:28
|
|
Tomok 
      
Beiträge: 35
|
Verfasst: Mo 21.04.03 10:44
Danke für den Tip, nur läuft das eine Beispiel bei mir nicht, weil ich einige der
Komponenten nicht habe und das andere ermittelt scheinbar nur lokale IPs.
|
|
Tomok 
      
Beiträge: 35
|
Verfasst: Mo 21.04.03 12:09
Ich hab es geschaft !!!!!!!!!!!!!!  Hier ist meine Unit
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60:
| unit IPGet;
interface
uses URLMon,Sysutils;
function getIP : String;
implementation
const IPPage = 'http://www.whatismyip.com/'; TMPFile = 'C:\MyIP.htm';
function getIP : String; var f : Textfile; s1,s2 : string; b : Boolean; i,x,y : integer; begin URLDownLoadToFile(nil,IPPage,TMPFILE,0,nil); assignfile(f,TMPFile); reset(f); s2 := ''; while not eof(f) do begin readln(f,s1); s2 := s2+s1; end; s2 := uppercase(s2); b := false; i := 0; repeat if (s2[i]='I')and(s2[i+1]='S') then begin x := i; repeat inc(x); until ((s2[x]='1')or(s2[x]='2')or(s2[x]='3')or(s2[x]='4')or(s2[x]='5') or(s2[x]='6')or(s2[x]='7')or(s2[x]='8')or(s2[x]='9')or(s2[x]='0')) or (x>=length(s2)); y := x; repeat inc(x); until (not((s2[x]='1')or(s2[x]='2')or(s2[x]='3')or(s2[x]='4')or(s2[x]='5') or(s2[x]='6')or(s2[x]='7')or(s2[x]='8')or(s2[x]='9')or(s2[x]='0') or (s2[x]='.') or (x>=length(s2)))); result := (copy(s2,y,x-y)); b := true; end; inc(i); until b or (i>= length(s2)); closefile(f); deletefile(TMPFile); end;
end. |
Moderiert von Gausi: Code- durch Delphi-Tags ersetzt
|
|
Moritz M.
      
Beiträge: 1672
|
Verfasst: Mo 21.04.03 12:12
Ja, du hast die Web-gestützte Methode benützt.
|
|
FloSch
      
Beiträge: 129
|
Verfasst: Mo 21.04.03 12:39
Hallo,
der Source oben von Tomok ist ja ein Hammer  Extrem
umständlich oder?
Habe eben auch einen mal gebastelt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| const sURL = 'http://www.whatismyip.com'; sSearchText = 'your ip is'; var sResult: string; sIP : string; begin try sResult := http.Get(sURL); sResult := LowerCase(sResult); sIP := Copy(sResult, pos(sSearchText, sResult) + Length(sSearchText) + 1,pos(' ', Copy(sResult, pos(sSearchText, sResult) + Length(sSearchText) + 1, length(sResult))) -1 ); ShowMessage(sIP); except MessageDlg('Sie sind nicht mit dem Internet verbunden.', mtError, [mbOK], 0); end; |
Mein Source nutzt die TidHTTP Komponente von Indy.
Grüße
Florian
Moderiert von Gausi: Code- durch Delphi-Tags ersetzt
|
|
Starfighter
      
Beiträge: 51
|
Verfasst: Mo 21.04.03 12:56
hallo,
wo ist den die Indy Komponente?
|
|
FloSch
      
Beiträge: 129
|
Verfasst: Mo 21.04.03 13:07
Hallo,
die Indy-Komponenten gibt es unter
nevrona.com/indy
Grüße
Florian 
|
|
BeniSchindler
      
Beiträge: 82
Win 2k / suse9.1
D7 Prof / Kylix 3
|
Verfasst: Di 22.04.03 18:11
@FloSch:
thx,thx,thx!!!
gute und schnelle lösung.
Alle anderen Lösungen die ich bisher hatte, waren umständlich und haben entweder in Windows oder in Linux nicht richtig funktioniert. Dank dieser Lösung und dank dieser Web-Site muss ich mich jetzt um ein Problem weniger kümmern. Ich weiss nicht wer auf die Idee kommt eine Website zu machen, auf der man nur seine IP sieht, es ist jedoch verdammt gut
Nach einem Jahr Delphiforumspause 5 min online und schon wieder ein Problem weniger.
mfg Beni.
|
|
FloSch
      
Beiträge: 129
|
Verfasst: Di 22.04.03 18:28
Hallo,
kein Problem
Grüße
Florian 
_________________ Windows 200 Prof. - Debian Sarge
D5 Prof & D6 PE - Kylix 3 Professional - Free Pascal
|
|
Danny W.
      
Beiträge: 296
Windows XP, WIN 2000
Delphi 2005 PE
|
Verfasst: Mi 15.11.06 14:11
Funktioniert leider nichtmehr..die haben wohl die Seite geändert 
_________________ "Ich find den Fehler nicht. Der Artist wird immer als "Syntax Error" gezeigt  "
"Ach verdammt, der Artist heißt wirklich "Syntax Error" xD"
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 15.11.06 14:50
Moin!
Zieh dir mit TIdHttp die Seite von www.whatismyip.com oder checkip.dyndns.org und filter doch einfach die Adresse raus, ist ja keine Kunst.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Danny W.
      
Beiträge: 296
Windows XP, WIN 2000
Delphi 2005 PE
|
Verfasst: Mi 15.11.06 14:52
stimmt..das mach ich eben 
_________________ "Ich find den Fehler nicht. Der Artist wird immer als "Syntax Error" gezeigt  "
"Ach verdammt, der Artist heißt wirklich "Syntax Error" xD"
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Mi 15.11.06 15:01
Deine effektive IP im Internet ist vielleicht gar nicht so relevant. Wenn du nämlich hinter einem NAT bist, dann ist es häufig nicht deine eigene IP sondern eine Sammel-IP (die bringt dir zum Gamen nicht viel). Du solltest die IPs des Rechners direkt bestimmen. Dafür brauchst du auch gar keine externe Seite. Die Info aus ipconfig würde reichen. Natürlich kann man die IPs auch programmatisch bestimmen (ohne ipconfig). Falls der Rechner in einem lokalen Netz ist, kriegst du so die lokale IP raus und du kannst übers lokale Netz spielen. Bist du direkt am Internet angeschlossen, so solltest du auch die direkte IP im Internet erhalten. Mehr macht selten Sinn.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 15.11.06 15:16
Moin!
Hier mal ein Ansatz:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| uses ..., RegExpr, IdHttp;
procedure TForm1.Button1Click(Sender: TObject); var RE: TRegExpr; IdHTTP: TIdHTTP; begin RE := TRegExpr.Create; IdHttp := TIdHTTP.Create(NIL); try try RE.Expression := '(\d{1,3}\.){3}\d{1,3}'; if RE.Exec(IdHTTP.Get('http://www.whatismyip.com')) then Edit1.Text := RE.Match[0] else Edit1.Text := 'Fehler: IP nicht vorhanden!'; except Edit1.Text := 'Fehler: '+Exception(ExceptObject).Message; end; finally IdHTTP.Free; RE.Free; end; end; |
Aber Vorsicht:
a) Benötigt Indy und TRegExpr,
b) prüft die IP nicht auf Gültigkeit,
c) ist so nicht Proxy-tauglich (muss separat konfiguriert werden),
d) liefert dann aber ggfs. den Proxy, und nicht die eigene IP!
Ansonsten sind die Hinweise von delfiphan natürlich noch zu beachten.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Manina
      
Beiträge: 44
Win 7 Pro
RAD Studio 2010 Pro
|
Verfasst: Mo 23.03.09 22:22
_________________ Gates, oder Gates nicht ?
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Mo 23.03.09 22:29
Vielleicht hilft das ja weiter: KLICK MICH
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 23.03.09 22:37
Moin!
Du bist im falschen Film, hier geht´s um die öffentliche IP (dein Link ermittelt die lokale IP)!
Manina hat folgendes geschrieben : | | Es geht auch noch einfacher: |
Wenn dieser Dienst zur Verfügung steht. Ansonsten ist eine flexiblere Lösung wohl der bessere Ansatz.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Mo 23.03.09 22:40
Oh, habe die Posts nur schnell überflogen und dort fiel auch einmal das Wort Lokal.
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mo 23.03.09 22:41
*räusper* Das Datum des ersten Postings ist euch schon aufgefallen? 
_________________ We are, we were and will not be.
|
|