Go Down

Topic: WAN Adresse des Routers mit Arduino auslesbar? (Read 1 time) previous topic - next topic

Scherheinz

Hallo!
Ich würde gern wissen ob ich mit dem Arduino +Ethernet Shield irgendwie die WAN Adresse des Routers auslesen und per Email verschicken kann oder braucht man auf jeden Fall DynDNS um Verbindung übers Internet zu bekommen?

Gruß

Manawyrm

Hmm- dir fehlen wohl auch noch nen paar Netzwerkkenntnisse.

Die einzige Stelle im Netz, die die externe IP kennt, ist den Router.
Was du machen kannst, ist eine externe Internetseite fragen, wie denn deine eigene IP lautet.

Du kannst also einfach nen HTTP Request auf 216.146.39.70 machen, und dort bis zum ersten Doppelpunkt alle Zeichen droppen.
Dann noch ne Funktion ausm Netz klauen um aus dem IP String Bytes zu machen und fertig =D


jurs


Ich würde gern wissen ob ich mit dem Arduino +Ethernet Shield irgendwie die WAN Adresse des Routers auslesen und per Email verschicken kann oder braucht man auf jeden Fall DynDNS um Verbindung übers Internet zu bekommen?


Ja, natürlich geht das. Auf Anhieb fallen mir zwei Möglichkeiten ein.

1. Möglichkeit "autark":
Standard Home-Router sind üblicherweise per HTTP mittels Webbrowser konfigurierbar und haben irgendwo eine "Statusseite", auf der der Verbindungsstatus und die WAN-Adresse angezeigt wird.

Bei einem passwortgesicherten Router müßte der Arduino dann nur mit Passwort die Router-Statusseite abrufen können und kann dann den Seiteninhalt der Statusseite parsen und die WAN-Adresse dort rauslesen.

2. Möglichkeit "mittels Internet-Webserver per Skript":
Du könntest auf einem Internet-Webserver ein Skript installieren, das als Antwort auf eine HTTP-Anfrage die IP-Adresse zurückliefert, von der aus die Anfrage erfolgte. Das ist dann Deine WAN IP. Der Arduino müßte dann nur den externen Webserver abfragen, welche Adresse er feststellt und anzeigt.

mkl0815

Nicht so umständlich.

HTTP-Request auf folgende URL:
http://wtfismyip.com/text
liefert die IP als reinen String ohne störendes HTML. Jetzt muss man das Ganze nur noch mit jurs genialen Zahlen-aus-Strings-Funktion in die 4 Bytes zerlegen und gut ist.
Wenn es als Mail verschickt werden soll, kann es sogar ein String bleiben.
Mario.

jurs


Nicht so umständlich.

HTTP-Request auf folgende URL:
http://wtfismyip.com/text
liefert die IP als reinen String ohne störendes HTML.


Verläßt Du Dich immer auf fremde Internetdienste?
Wie lange funktionieren diese zuverlässig?
Wie stark darfst Du fremde Server-Infrastruktur belasten, ohne ausgesperrt zu werden?

michael_x

Quote
Verläßt Du Dich immer auf fremde Internetdienste?
Wie lange funktionieren diese zuverlässig?
Wie stark darfst Du fremde Server-Infrastruktur belasten, ohne ausgesperrt zu werden?

Ohne arduino.cc und google.com wäre ich aufgeschmissen.
wikipedia.org und ebay.com sind andere Adressen, wo ich ungern ausgesperrt würde.
Ausserdem hat mein Rechner ein Verhältnis mit ntp Servern, ganz abgesehen davon dass
Software heutzutage gern "phone home" macht, wenn sich die Gelegenheit bietet.

Das sind die modernen Zeiten: Du denkst du nimmst Dienste in Anspruch, bist aber das Gemüse, das verkauft wird.


mkl0815

Keine Ahnung was Du für einen Browser nutzt, aber ich bekomme eine IP. Sogar per telnet:
Quote

$ telnet wtfismyip.com 80
Trying 23.21.127.118...
Connected to wtfismyip.com.
Escape character is '^]'.
GET /text
Host: wtfismyip.com

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Type: text/html; charset=utf-8
Content-Length: 14
Date: Wed, 10 Apr 2013 15:28:54 GMT
Connection: close

85.114.145.181
Connection closed by foreign host.
$


OK, Du scheinst da per IPv6 anzukommen.  :smiley-eek-blue:

pylon

Quote
Der Service wird sicher helfen.


Dein Browser mag per IPv6 auf den Server zugreifen, Dein Arduino mit Bestimmtheit nicht (er kann das gar nicht). Du kannst also diesen Aufruf getrost verwenden, allerdings ist die DynDNS-Lösung mit Sicherheit einfacher zu realisieren.

Manawyrm

Man sieht ja auch rechts das kleine IPv6 Logo.
Trotzdem ist das sehr unschön.

Wofür muss ein Arduino eig. seine IP Wissen? Dafür fällt mir kein wirklicher Einsatzzweck ein.

jurs


Wofür muss ein Arduino eig. seine IP Wissen? Dafür fällt mir kein wirklicher Einsatzzweck ein.


Das ergibt sich doch aus dem Ausgangsposting: Er möchte seinen Arduino als Server an einer dynamischen IP-Adresse betreiben und dabei keine DynDNS-Konfiguration verwenden (wohl, weil die inzwischen überall Geld kosten).

Und damit der Server von außen aus dem Internet erreichbar ist, soll er bei Änderungen der dynamsichen WAN-IP-Adresse dem Zugriffsberechtigten mitteilen, unter welcher IP-Adresse das jeweils möglich ist.


Scherheinz

Ganz genau das brauch ich. Ich möchte von extern Daten einer Wetterstattion (Die von einem Arduino ausgelesen wird) und einer Cam abrufen. Leider unterstützt mein Router nur 2 Anbieter von DynDNS und diese sind kostenpflichtig. Ich will mir nicht nur wegen dieser Funktion einen neuen Router kaufen müssen.

Go Up