Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
creepi
Anmeldungsdatum: 13.06.2010 Beiträge: 59
|
Verfasst am: 16.01.2011, 16:01 Titel: IP Adresse Anzeigen |
|
|
Hi,
ich hab nichts passendes gefunden...
Könnte mir wer sagen wie es möglich wäre in freebasic seine ip anzeigen zu lassen?
Nutzen TSNE mit UDP falls da wo nen code versteckt ist immer her damit
spieler 2 gibt spieler 1 ip ein verbindet > spieler 1 hat ip von spieler 2 bei empfang des packets und kann auch zu 2 senden...
Aber manche wissen halt nicht so flott wie sie ihre ip erfahren aus dem grund eben die direkte anzeige im spiel für spieler 1 damit der spieler 2 seine ip sagen kann.
Falls mir wer nen tipp geben könnte wäre das echt schön : ) |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 16.01.2011, 16:26 Titel: |
|
|
das problem ist dass dein computer in der regel die richtige IP selbst nicht weiß: Dein computer hat nur ne lokale netzwerk-ip (oder sogar mehrere, die kannst du irgendwie anzeigen lassen). Aber spätestens wenn du übers internet verbinden willst muss der andere spieler die internet-IP des routers des ersten spielers eingeben, und die weiß der computer erstmal nicht.
Die kann man rausfinden indem du einen server im internet stehen hast auf den du verbindest, und der dir dann die IP, von der die verbindung kam, zurückgibt ( stichwort http://www.wieistmeineip.de/ ), aber da musst du dann ein klein bisschen aufwand reinstecken, das ist kein zweizeiler mehr. Und wenn du den server selber hosten willst (ich weiß nicht obs nen webservice oder sowas gibt der das öffentlich anbietet damit mans einfach maschinell weiterverwenden kann, ich kenn bisher keinen), dann musst du zusätzlich den entsprechenden server schreiben und vor allem irgendwo hosten. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 16.01.2011, 16:29 Titel: |
|
|
Hallo,
im Prinzip genügt es, ein php-Skript wie
Code: | <?php
header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0');
die($_SERVER['REMOTE_ADDR']);
?> |
auf irgendeinen Webserver zu legen und dessen Ausgabe dann per HTTP herunterzuladen (z.B. per TSNE oder WinINet-Bibliothek). Schon hat man die "externe" IP-Adresse, d. h. die öffentliche Internet-IP-Adresse.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
creepi
Anmeldungsdatum: 13.06.2010 Beiträge: 59
|
Verfasst am: 16.01.2011, 16:35 Titel: |
|
|
Hm, das erstmal gebacken bekommen, freebasic auf ne seite zugreifen zulassen hab ich noch nie versucht xD
Werd mal die suche für mich arbeiten lassen evtl. wurde ja sowas schon versucht : )
@MisterD
An ein server dachte ich auch schon, dann könnte der client automatisch verbinden und es gäbe direkt noch eine lobby. Aber es würde sich nicht lohnen für das spiel extra ein server laufen zu lassen.
Die idee mit der webseite klingt schon recht interessant.
Müsste wie gesagt nur mal schauen wie ich da die informationen sende/empfange
Danke schon mal für die anregung. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
creepi
Anmeldungsdatum: 13.06.2010 Beiträge: 59
|
Verfasst am: 16.01.2011, 17:08 Titel: |
|
|
Also die verbindung bekomme ich hin und auch das mir die startseite in text form angezeigt wird. Aber ich bekomme nicht die ipadress.php angezeigt. Wenn ich die direkt hinter der domain dran hänge bekomme ich ein fehler. Aber sonst hab ich nirgens gefunden wo ich die hätte angeben könnten.
Ein "/" fand ich nicht im script oder ähnliches wo man noch ein pfad angeben könnte.
Neben bei stellte ich mir jetzt die frage.. der header wird mit im string rein gehauen. Wenn ich das richtig seh müsste ich die ip aus dem string filtern damit ich die dann nutzen könnte. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
creepi
Anmeldungsdatum: 13.06.2010 Beiträge: 59
|
Verfasst am: 16.01.2011, 17:13 Titel: |
|
|
HA! Vielen Dank!!
Hat funktioniert, ich dacht das wäre ehr als "print" und keine wirkliche auswirkung weil da drunter Host: ... steht und ja auch als print gebracht wird...
Danke Danke und nochmals Danke hast mir ein gutes stück weiter gebracht : ) |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 16.01.2011, 21:28 Titel: |
|
|
Hier muss folgendes ergänzt werden: An und für sich wäre etwas der Art wie
Code: | SHELL "ipconfig >%TEMP%\ip.txt" |
mit Auswertung das Richtige und auch geeignet fürs Intranet hinter dem NAT-Router. Weil sich aber beim (immer noch aktuellen) IPv4 aus der Not heraus NAT durchgesetzt hat, ging das für Deinen Fall benötigte End-to-End-Kommunikationsmodell verloren, so dass Du mit den hier beschriebenen Tricks arbeiten musst. Alternative wäre sonst höchstens noch eine passende SNMP-Abfrage auf dem Router, um von einem externen Host für die $_SERVER["REMOTE_ADDR"]-Abfrage unabhängig zu sein.
Von dem her darf bei IPv6 wieder mit einer Ende-zu-Ende-Kommunikation ohne NAT-Querelen gerechnet werden, weil es selbst für den kleinsten Privathaushalt-Interntanschluss genügend öffentliche Unicast-IP-Adressen gibt. :-) _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
oldirty

Anmeldungsdatum: 04.08.2005 Beiträge: 65
|
Verfasst am: 18.01.2011, 21:05 Titel: |
|
|
Hallo, habe hier mal einen Code, den ich selbst schon lange benutze:
Code: |
#include once "windows.bi"
#include once "win/shellapi.bi"
#include once "win\wininet.bi"
'Abwandlung von Download-Prg: http://www.freebasic.net/forum/viewtopic.php?t=13982
'
Declare Function GetExternIP() As String
screenres 640,150,24,1
print GetExternIP
Print:print "Sleeping to Exit.."
Beep
Sleep
End
'**************************************************************************
Function GetExternIP() As String
Dim As HINTERNET hOpen,hFile
Dim As Integer ctot,nret,res,tbsize,t
Dim As String tbuff,ts
dim as string*20 externeip=space(20)
Dim As String scUserAgent = "Zippy"
'Quelle, gibt nur die externe IP-Adresse als String zurueck:
Dim As String sURL="http://whatismyip.com/automation/n09230945.asp"
Dim As Byte Ptr mybuff
mybuff = allocate(1024)
'
'Create an internet connection
hOpen=InternetOpen(scUserAgent,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0)
If hOpen=0 Then Return "-1 failed.."
'
'Open the url
hFile = InternetOpenUrl(hOpen,sURL,NULL,0,INTERNET_FLAG_RELOAD,0)
If hFile=0 Then Return "-2 failed.."
'
'Let's get the file size..
' I think this requires IE 4.0 engine, not 3.0
tbuff=Space(32)
tbsize=32
res=HttpQueryInfo(hFile,_
HTTP_QUERY_CONTENT_LENGTH,_
Strptr(tbuff),_
@tbsize,_
NULL)
tbsize=Val(trim(tbuff))
res=InternetReadFile(hFile,mybuff,1024,@nret)
If nret>0 Then
for x as integer = 0 to nret-1
externeip[x]=mybuff[x]
next x
End If
'
InternetCloseHandle(hFile)
InternetCloseHandle(hOpen)
deallocate mybuff
Return externeip
End Function
|
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 18.01.2011, 22:21 Titel: |
|
|
hi,
du kannst natürlich auch GetWANIP benutzen..
Das funktioniert ganz prima..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
creepi
Anmeldungsdatum: 13.06.2010 Beiträge: 59
|
Verfasst am: 19.01.2011, 18:29 Titel: |
|
|
da passt wohl der spruch "viele wege führen nach rom" wie die faust aufs auge ; )
Ich werd erstmal die variante von Sebastian nutzen. Würde gern dazu eine frage stellen auch wenn das vom eigentlichen thread evtl. sich etwas unterscheidet.
Aktuell kann ich ja per get sachen an die webseite übermitteln. Wäre es möglich statt GET per "$_POST" von freebasic rüber zur webseite zu schicken? |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
creepi
Anmeldungsdatum: 13.06.2010 Beiträge: 59
|
Verfasst am: 19.01.2011, 19:53 Titel: |
|
|
Grr daran hatte ich schon gedacht aber dann fragte ich mich wie ich das verpacken solle.
Werd ich dann mal versuchen und die infos per D dann rüber an den server schicken und auszuwerten.....
Thx = )
Edit:
...könntest du mir ein beispiel zeigen?
Ich bekomm es nicht wirklich gebacken etwas an den browser zu senden, per get gehts ja nu aber nicht mit post irgend wie fehlt mir der grundstein um es so darzustellen das der browser es als post erkennt... : / |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
creepi
Anmeldungsdatum: 13.06.2010 Beiträge: 59
|
Verfasst am: 30.01.2011, 04:39 Titel: |
|
|
Glaube ich wiederhole mich hier ständig aber irgend wie muss ich es erneut tun. Wie schon öfter zu lesen in den Thread und jetzt nochmal: Danke!
Vielen Dank für den beispiel Code. Habs mir eben mal angeschaut echt klasse. Damit kann die sache nun weiter angehen. Morgen genauer studieren und ab geht die post ; )
Gruß, Creepi |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 01.02.2011, 00:13 Titel: |
|
|
du musst nicht zwangsweise php skripte nutzen, oder irgend welche seiten parsen ...
es gibt netterweise einen service, der dir soetwas auserordentlich simpel zurück gibt.
http://checkip.dyndns.org
diese wird von jedem dyndns-client genutzt, um die aktuelle inet ip zu ermitteln, und gegebenenfalls diese zu aktualisieren.
Hat auch den vorteil, das man nicht unbedingt n server braucht, und ist für spiele sogar relativ ideal, da der DynDNS-server wohl von überall aus leicht zu erreichen ist.
ein entsprechendes prog würde so aussehen:
http://www.freebasic-portal.de/porticula/testgetwanipa-bas-1229.html
EDIT
Nachtrag ... habe mal fix TSNEX_V3 um eine Funktion erweitert.
Get WAN IP-Adresse
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 10.07.2011, 00:00 Titel: |
|
|
hi,
ich will hier nicht als Leichenschänder anftreten, aber..
oldirty hat Folgendes geschrieben: | Hallo, habe hier mal einen Code, den ich selbst schon lange benutze | ..das sollte wohl heißen:..den ich schon vor langer Zeit geschrieben habe
(nimms bitte nicht persönlich, oldirty )
Fakt ist: Die Adresse von automation bei whatismyip hat sich geändert..
Neue Adresse, die auch eben noch funktioniert hat, ist:
http://automation.whatismyip.com/n09230945.asp
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
oldirty

Anmeldungsdatum: 04.08.2005 Beiträge: 65
|
Verfasst am: 07.08.2011, 17:47 Titel: |
|
|
@ ytwinky
nehme ich nicht persönlich, aber zur Klarstellung:
Ich habe nicht gesagt: "Geschrieben", sondern "benutze"
Quelle steht ebenfalls in meinem Code (Post aus dem englischen Forum von "Zippy"):
Den neuen Link habe ich bereits im Einsatz. Danke aber für die Info.
Gruß
OlDirty |
|
Nach oben |
|
 |
|