Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

IP Adresse Anzeigen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
creepi



Anmeldungsdatum: 13.06.2010
Beiträge: 59

BeitragVerfasst am: 16.01.2011, 16:01    Titel: IP Adresse Anzeigen Antworten mit Zitat

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 happy

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
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 16.01.2011, 16:26    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 16.01.2011, 16:29    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
creepi



Anmeldungsdatum: 13.06.2010
Beiträge: 59

BeitragVerfasst am: 16.01.2011, 16:35    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 16.01.2011, 16:49    Titel: Antworten mit Zitat

creepi hat Folgendes geschrieben:
Hm, das erstmal gebacken bekommen, freebasic auf ne seite zugreifen zulassen hab ich noch nie versucht xD

Dieser Beispiel-Code demonstriert, wie man mit der TSNE eine Datei via HTTP herunterladen kann: http://www.freebasic-portal.de/porticula/test-clientbas-739.html

Du müsstest "www.google.de" durch den Hostnamen deines Webservers ersetzen ("creepishomeserver.dyndns.org" oder so) und die angeforderte Datei "/" durch den Pfad zum php-Skript (z. B. "/meineskripte/ipadresse.php").
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
creepi



Anmeldungsdatum: 13.06.2010
Beiträge: 59

BeitragVerfasst am: 16.01.2011, 17:08    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 16.01.2011, 17:10    Titel: Antworten mit Zitat

Der Slash, den du ersetzen musst, steht innerhalb eines Strings:
Code:
D += "GET / HTTP/1.1" & CRLF

Den musst du entsprechend anpassen:
Code:
D += "GET /meinkrams/ipadresse.php HTTP/1.1" & CRLF


Als Host, also anstelle von "www.google.de", darfst du nur den Hostnamen oder die IP-Adresse des Servers angeben.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
creepi



Anmeldungsdatum: 13.06.2010
Beiträge: 59

BeitragVerfasst am: 16.01.2011, 17:13    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 16.01.2011, 21:28    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
oldirty



Anmeldungsdatum: 04.08.2005
Beiträge: 65

BeitragVerfasst am: 18.01.2011, 21:05    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 18.01.2011, 22:21    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
creepi



Anmeldungsdatum: 13.06.2010
Beiträge: 59

BeitragVerfasst am: 19.01.2011, 18:29    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 19.01.2011, 19:18    Titel: Antworten mit Zitat

creepi hat Folgendes geschrieben:
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?

Ja, das geht. Die String-Variable D enthält ja die HTTP-Anfrage an den Server. Statt GET kannst du da natürlich auch POST inkl. Formulardaten senden.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
creepi



Anmeldungsdatum: 13.06.2010
Beiträge: 59

BeitragVerfasst am: 19.01.2011, 19:53    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 28.01.2011, 22:36    Titel: Antworten mit Zitat

Hier ein Beispiel-Code zum Senden einer HTTP-POST-Anfrage: http://www.freebasic-portal.de/sst/httppost.zip
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
creepi



Anmeldungsdatum: 13.06.2010
Beiträge: 59

BeitragVerfasst am: 30.01.2011, 04:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 01.02.2011, 00:13    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 10.07.2011, 00:00    Titel: Antworten mit Zitat

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 zwinkern
(nimms bitte nicht persönlich, oldirty happy )
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
oldirty



Anmeldungsdatum: 04.08.2005
Beiträge: 65

BeitragVerfasst am: 07.08.2011, 17:47    Titel: Antworten mit Zitat

@ ytwinky
nehme ich nicht persönlich, aber zur Klarstellung:

Ich habe nicht gesagt: "Geschrieben", sondern "benutze" geschockt

Quelle steht ebenfalls in meinem Code (Post aus dem englischen Forum von "Zippy"):

Zitat:

Abwandlung von Download-Prg: http://www.freebasic.net/forum/viewtopic.php?t=13982


Den neuen Link habe ich bereits im Einsatz. Danke aber für die Info.

Gruß
OlDirty
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz