Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de

  
c++.de :: C# und .NET ::  Fritzbox: Internet-IP ermitteln     Zeige alle Beiträge auf einer Seite Thema geschlossen
Autor Nachricht
Orchy
Unregistrierter




Beitrag Orchy Unregistrierter 10:10:05 13.07.2011   Titel:   Fritzbox: Internet-IP ermitteln            Zitieren

Ich habe bei google und hier in den FAQs nichts gefunden.

Kann ich irgendwie mit C# und dem Net-Framework die Internet-IP herausbekommen mit der in On bin? Ich meine nicht die lokale IP. Ich habe eine Fritz!Box 6360 Cable.

Schon mal vielen dank!
theta
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.09.2008
Beiträge: 4239
Beitrag theta Mitglied 11:36:57 13.07.2011   Titel:              Zitieren

Ev. bietet deine FritzBox etwas eigenes - was sicher geht ist das folgende:
http://www.c-plusplus.de/forum/288426
cooky451
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.10.2010
Beiträge: 7531
Beitrag cooky451 Mitglied 13:12:52 13.07.2011   Titel:              Zitieren

Ich würde einfach eine Anfrage an http://www.whatismyip.org/ senden.

_________________
Sie sind nicht berechtigt unrechtmäßige Kopien dieses Datenträgers zu erstellen.™
Keksverteilungsbeauftragter


Zuletzt bearbeitet von cooky451 am 13:13:04 13.07.2011, insgesamt 1-mal bearbeitet
Orchy
Unregistrierter




Beitrag Orchy Unregistrierter 13:52:21 13.07.2011   Titel:              Zitieren

Vielen dank. Ich suche aber eigentlich eine Lösung zur direkten Abfrage über die Fritzbox, denn wenn die nicht On ist, nützt die "Umwege-Lösung" herzlich wenig.

Weitere Vorschläge?
theta
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.09.2008
Beiträge: 4239
Beitrag theta Mitglied 13:55:00 13.07.2011   Titel:              Zitieren

Orchy schrieb:
Vielen dank. Ich suche aber eigentlich eine Lösung zur direkten Abfrage über die Fritzbox, denn wenn die nicht On ist, nützt die "Umwege-Lösung" herzlich wenig.

Weitere Vorschläge?

Und welche anderen Wege nützen dann irgendwas wenn die FB aus ist? :cool:
volkard
Moderator

Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 27952
Beitrag volkard Moderator 15:51:05 13.07.2011   Titel:              Zitieren

Natürlich ist der direkte Weg, die Fritzbox zu befragen, irgendwie erstrebenswert.

Viele Router können snmp. Das wäre der direkte Weg. Kann Deine Fritzbox das?

Kommt man per Telnet oder SSH rein? Dann wäre das auch sehr hübsch.

Natürlich kann man sie per HTTP befragen, aber das bedeutet unter Umständen blödes Passwortgefummle. Einfach mal ausprobieren.

Oder pushen statt pollen und einen durchlaufenden Rechner die Logs empfagen lassen, sind die syslog-ng-ähnlich?

Und zuguterletzt nicht als ddns-Dienst einen lokalen Rechner angeben und mitschreiben.

Aber whatismyip.org ist schon angenehm einfach.

_________________
PS.: korrigier nicht meine tippfehler bitte, samsung hat die beste tstatur nur ich hab sie nicht die spalten zwischen den tasten sind groß und die tsten flach einfach genial
geeky
Mitglied

Benutzerprofil
Anmeldungsdatum: 04.05.2001
Beiträge: 6299
Beitrag geeky Mitglied 16:42:53 13.07.2011   Titel:              Zitieren

Wenn der Router UPnP kann und aktiviert hat:
http://upnp.org/specs/gw/ ....... Connection-v1-Service.pdf
"2.2.11.ExternalIPAddress - This is the external IP address used by NAT for the connection."

Es ist aber definitiv einfacher einen Server (also sowas wie whatismyip.com nach der eigenen IP zu befragen, zudem funktioniert das quasi mit jedem Router ;D
schmidt-webdesign.net
Mitglied

Benutzerprofil
Anmeldungsdatum: 29.12.2006
Beiträge: 410
Beitrag schmidt-webdesign.net Mitglied 23:38:11 13.07.2011   Titel:              Zitieren

Deine Fritz!Box 6360 Cable ist offenbar ein sehr neues Modell. Deshalb dürfte dein Vorhaben relativ einfach (und ohne große Umwege) zu lösen sein.

Zitat AVM: "Die FRITZ!Box Linie bietet in der aktuellen Ausprägung bereits Unterstützung für Entwicklungsvorhaben von unabhängigen Anbietern. Genutzt werden offene bzw. standardisierte Schnittstellen, die AVM im Rahmen der Systemarchitektur der FRITZ!Box unterstützt."

Der vollständige Artikel ist auf der Informationseite zu Schnittstellen und Protokollen rund um FRITZ!Box zu finden.

_________________
schmidt-webdesign.net
Orchy
Unregistrierter




Beitrag Orchy Unregistrierter 09:17:45 14.07.2011   Titel:              Zitieren

So was in die Richtung habe ich gesucht, vielen dank!

Mit der Anweisung

curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:GetExternalIPAddress xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /> </s:Body> </s:Envelope>" -s | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'

soll man die externe IP abfragen können. Wie kann ich diese Anweisung in ein C# Programm einbauen? Sry aber ich bin noch Anfänger.
Orchy
Unregistrierter




Beitrag Orchy Unregistrierter 17:43:47 22.07.2011   Titel:              Zitieren

Ich bekomme es nicht hin. Kann mir bitte jemand helfen? Muß ich Sockets verwenden? Es gibt im gesamten Internet scheinbar kein Beispiel daß funktioniert. Jedenfalls habe ich keines gefunden. Bin für jeden Tip dankbar.
theta
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.09.2008
Beiträge: 4239
Beitrag theta Mitglied 19:28:20 22.07.2011   Titel:              Zitieren

Hier mal ein Bsp mit www.whatismyip.org. Die Fehlerbehandlung habe ich weggelassen.

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Net;

 
namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            using (WebClient client = new WebClient())
            {
                string s = client.DownloadString("http://www.whatismyip.org/");
                IPAddress address = IPAddress.Parse(s);
                Console.WriteLine("My external IP address is {0}.", address);
            }
        }
    }
}


[EDIT]
- URI geändert


Zuletzt bearbeitet von theta am 21:34:14 22.07.2011, insgesamt 1-mal bearbeitet
Orchy
Unregistrierter




Beitrag Orchy Unregistrierter 23:22:09 22.07.2011   Titel:              Zitieren

Ich hatte oben schon geschrieben, daß ich eigentlich eine Lösung zur direkten Abfrage über die Fritzbox suche. "whatismyip" gibt es in Netz zuhauf, sie interessieren mich nicht.
theta
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.09.2008
Beiträge: 4239
Beitrag theta Mitglied 08:51:12 23.07.2011   Titel:              Zitieren

Falls der Router dynamisch seine IP bezieht (vom Provider).. was hat der denn für eine IP wenn er nicht mit dem Provider verbunden ist?
Orchy
Unregistrierter




Beitrag Orchy Unregistrierter 10:19:41 23.07.2011   Titel:              Zitieren

Das weiß ich nicht, weil ich diese Info aus der Fritzbox ja nicht auslesen kann. Wahrscheinlich aber die gleiche Grütze, wie bei "whatismyip" wenn die Box. nicht mit dem Provider verbunden ist.

ICH MÖCHTE DIE WERTE ÜBER DIE FRITZBOX ABFRAGEN. Das geht wohl irgendwie über UPNP und dafür UND NUR DAFÜR möchte ich bitte einen Lösungsansatz.
schmidt-webdesign.net
Mitglied

Benutzerprofil
Anmeldungsdatum: 29.12.2006
Beiträge: 410
Beitrag schmidt-webdesign.net Mitglied 11:01:19 23.07.2011   Titel:              Zitieren

Orchy schrieb:
So was in die Richtung habe ich gesucht, vielen dank!

Mit der Anweisung

curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:GetExternalIPAddress xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /> </s:Body> </s:Envelope>" -s | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'

soll man die externe IP abfragen können. Wie kann ich diese Anweisung in ein C# Programm einbauen? Sry aber ich bin noch Anfänger.


Vorausgesetzt, die o.a. fritz.box:49000/upnp/control/WANIPConn1-Anweisung ist korrekt - warum verfütterst du sie nicht an die HttpWebRequest-Klasse und wertest das Ergebnis aus?

_________________
schmidt-webdesign.net
theta
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.09.2008
Beiträge: 4239
Beitrag theta Mitglied 11:59:37 23.07.2011   Titel:              Zitieren

Orchy schrieb:
Das weiß ich nicht, weil ich diese Info aus der Fritzbox ja nicht auslesen kann. Wahrscheinlich aber die gleiche Grütze, wie bei "whatismyip" wenn die Box. nicht mit dem Provider verbunden ist.

ICH MÖCHTE DIE WERTE ÜBER DIE FRITZBOX ABFRAGEN. Das geht wohl irgendwie über UPNP und dafür UND NUR DAFÜR möchte ich bitte einen Lösungsansatz.

Aha... jetzt verstehe ich es endlich, du willst die Werte direkt bei der Fritzbox abfragen... :cool:
Mit den Grossbuchstaben wird das um einiges klarer.


Zuletzt bearbeitet von theta am 11:59:57 23.07.2011, insgesamt 1-mal bearbeitet
Orchy
Unregistrierter




Beitrag Orchy Unregistrierter 12:30:12 23.07.2011   Titel:              Zitieren

An theta: Ich glaube nicht wirklich, daß du meine Frage verstanden hast. Sonst hättest du sie ja beantwortet.

An schmidt-webdesign.net: Hast du vll. ein Beispiel oder einen Link auf ein solchen?
Dravere
Admin

Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 8438
Beitrag Dravere Admin 15:16:40 23.07.2011   Titel:              Zitieren

Orchy schrieb:
Das weiß ich nicht, weil ich diese Info aus der Fritzbox ja nicht auslesen kann. Wahrscheinlich aber die gleiche Grütze, wie bei "whatismyip" wenn die Box. nicht mit dem Provider verbunden ist.

ICH MÖCHTE DIE WERTE ÜBER DIE FRITZBOX ABFRAGEN. Das geht wohl irgendwie über UPNP und dafür UND NUR DAFÜR möchte ich bitte einen Lösungsansatz.

Ist dir wirklich nicht klar, dass wenn deine Fritbox nicht mit dem Provider verbunden ist, du gar keine WAN IP hast! Da nützt es nichts über SOAP oder SNMP zu gehen, die liefern dir auch nur ein leeres Ergebnis. Der Provider vergibt die IP Adresse an dich. Wenn du keine Verbindung zum Provider hast, hast du keine IP Adresse.

Daher hat theta deine Frage schon richtig verstanden. Er wundert sich wahrscheinlich eher darüber, dass dir nicht klar zu sein scheint, dass du ohne Provider und somit ohne Internet gar keine Internet IP hast (auch WAN IP genannt).


Für SOAP gibt es Beispiele wie Sand am Meer. Wenn du schnell auf Wikipedia gehst und dich zu SOAP informierst, merkst du, dass man dies mit XML über HTTP-POST erledigt. Die XML Daten und die URL hast du ja bereits. Wenn du dann ein wenig etwas zur HttpWebRequest Klasse anschaust, vielleicht auch den Namensraum anschaust, dann solltest du ziemlich schnell diese Methode finden:
WebClient.UploadString

Damit kannst du nun den XML-String per POST an die URL senden und bekommst eine Antwort. Falls du damit nicht weiterkommst, präsentiere zuerst mal, was du gemacht hast, dann wird dir sicherlich gerne weitergeholfen.

Grüssli

_________________
Danke für die Hilfe, Antwort oder Meinung!
C++: Std-Lib Referenz
C# .Net: MSDN kennt die Antwort
Orchy
Unregistrierter




Beitrag Orchy Unregistrierter 17:07:36 23.07.2011   Titel:              Zitieren

Natürlich ist mir klar, daß wenn ich keine Verbindung zum Provider habe, habe ich auch keine IP Adresse. Dann nützt mir aber "whatismyip" auch nichts!!!

Auf der Fritzbox-Seite habe diese angeblich funktionierende curl-Anweisung gefunden und möchte wissen, wie ich das in C# schreiben muß. Weißt DU das? Mir reicht ein einfaches JA oder NEIN.
schmidt-webdesign.net
Mitglied

Benutzerprofil
Anmeldungsdatum: 29.12.2006
Beiträge: 410
Beitrag schmidt-webdesign.net Mitglied 17:49:46 23.07.2011   Titel:              Zitieren

Versuch mal dies (ungeprüft!):

C#:
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
// Funktioniert dieses Programm, hat es Dirk Schmidt (http://schmidt-webdesign.net) geschrieben.
// Funktioniert es nicht, ist der Autor dieses Programms unbekannt.

using System;

using System.Net;

using System.Text;

using System.Xml;

 
namespace FritzboxUPnP
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine(GetExternalIP());
            Console.ReadKey();
        }
 
        private static string GetExternalIP()
        {
            WebRequest request = HttpWebRequest.Create("http://fritz.box:49000/upnp/control/WANIPConn1");
            request.Method = "POST";
            byte[] b = Encoding.UTF8.GetBytes(
                                "<?xml version=\"1.0\"?>" +
                                "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"" +
                                "s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" +
                                "<s:Body>" +
                                "<u:GetExternalIPAddress xmlns:u=\"urn:schemas-upnp-org:service:WANIPConnection:1\"></u:GetExternalIPAddress>" +
                                "</s:Body>" +
                                "</s:Envelope>");
            request.Headers.Add("SOAPACTION", "\"urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress\"");
            request.ContentType = "text/xml;charset=\"utf-8\"";
            request.ContentLength = b.Length;
            request.GetRequestStream().Write(b, 0, b.Length);
            XmlDocument xdoc = new XmlDocument();
            xdoc.Load(request.GetResponse().GetResponseStream());
            return (xdoc.SelectSingleNode("//NewExternalIPAddress/text()").Value);
        }
    }
}


Um die Fehlerbehandlung musst du dich selbst kümmern.

Poste mal, ob es funktioniert ...


Schönes Wochenende

_________________
schmidt-webdesign.net
Dravere
Admin

Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 8438
Beitrag Dravere Admin 20:55:04 23.07.2011   Titel:              Zitieren

Orchy schrieb:
Natürlich ist mir klar, daß wenn ich keine Verbindung zum Provider habe, habe ich auch keine IP Adresse. Dann nützt mir aber "whatismyip" auch nichts!!!

Dann nützt dir aber auch SOAP nichts! Und das ist ja am Ende der Punkt, wieso hier einige wohl ziemlich den Kopf schütteln. Wenn du kein Internet hast, dann bringt es dir nichts, wenn du die FritzBox direkt kontaktierst. Und wenn du Internet hast, dann ist es deutlich einfacher, schnell eine Anfrage an "whatismyip" zu senden. Das Resultat ist schlussendlich dasselbe!
Wenn du klar sagen würdest, dass du lernen möchtest, wie man das auf andere Wege erreicht, dann hätten hier deutlich mehr Verständnis, aber bisher habe ich nichts dergleichen von dir vornommen, nur kindische Grossbuchstaben und mehrfach Ausrufezeichen.

Orchy schrieb:
Auf der Fritzbox-Seite habe diese angeblich funktionierende curl-Anweisung gefunden und möchte wissen, wie ich das in C# schreiben muß. Weißt DU das? Mir reicht ein einfaches JA oder NEIN.

Auf diese Frage habe ich bereits ausführlich geantwortet, wie du das in C# realisieren kannst. Wenn daran irgendetwas unklar ist, dann frag konkret nach, sonst kann ich dir nicht weiterhelfen. Ein bisschen mitdenken und mitlesen erwarte ich schon von jemandem, der von jemand anderem Hilfe möchte.

Grüssli

_________________
Danke für die Hilfe, Antwort oder Meinung!
C++: Std-Lib Referenz
C# .Net: MSDN kennt die Antwort
Orchy
Unregistrierter




Beitrag Orchy Unregistrierter 22:41:14 23.07.2011   Titel:              Zitieren

Meine Frage hatte ich EINDEUTIG formuliert, nämlich "Fritzbox: Internet-IP ermitteln". Die Postings von Dravere, theta und cooky451 verfehlen dieses Thema und dienen wohl eher dem Zweck, die Anzahl ihrer nutzlosen Beiträge zu erhöhen!!!

Mein Dank geht an geeky für den uPnP-Tip und ganz besonders an den Poster des Codes Dirk Schmidt (http://schmidt-webdesign.net)!!! Das Beispielprogramm, daß ich noch nicht ganz verstehe, funktioniert tadellos und macht genau das was Volkard so treffend schrieb: "Natürlich ist der direkte Weg, die Fritzbox zu befragen, irgendwie erstrebenswert". Vielleicht bekomme ich es mit diesem Beispiel auch hin, die Fritzbox zu einer Zwangstrennung zu überreden.

VIELEN DANK AN DIESES FORUM!!!!
c++.de :: C# und .NET ::  Fritzbox: Internet-IP ermitteln   Thema geschlossen

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.