Kevin Papst Freiberuflicher Software Entwickler

IP Reconnect unter Ubuntu Linux – Neue IP Adresse mit Unitymedia Kabel Modem

I

Neugierig und wissensdurstig wie ich nunmal bin, habe ich mich dran gesetzt und nach einer Lösung gesucht und auch gefunden.

Wieso man sowas braucht? Naja, z.B. um

  • bei Rapidshare, Fileload, oder Netload die Wartezeit zu umgehen
  • ein zweites anonymes Blog Posting abzugeben
  • nochmal bei einem Voting abzustimmen
  • …. da gibts noch hunderte andere Gründe

Natürlich kann man das ganze manuell über die Weboberflächen von Modem und Router bewerksteligen, aber das ist ja keine Herausforderung und zudem auch nur schlecht zu automatisieren.

Was es bisher nicht gab, war ein lauffähiges Reconnect Script für folgende Kombination:

  • Ubuntu Linux (also ein Bash Script)
  • Netgear Router (54 Mbps Wireless Router model WGR614 v7)
  • Motorola Kabel Modem von Unity Media (Cable Modem SBV5121E)

Das ganze Script ist Programmierer-typisch „ausreichend schlecht“ kommentiert 😉 und wahrscheinlich nicht für Anfänger zu gebrauchen … aber ich will ja nicht so sein und biete mal meine Hilfestellung in den Kommentaren an.

Das Reconnect Skript

Anleitung

  • Den Code in eine neue Datei z.B. reconnect.sh kopieren & speichern
  • Variablen im oberen Skript Bereich an Eure Umgebung anpassen
  • MAC Adresse anpassen: Spoofmac=0000000000 mit den ersten 10 Zeichen der zwölfstelligen MAC des Routers ersetzen. Die letzten zwei Ziffern NICHT EINTRAGEN, die werden zufällig generiert damit man auch tatsächlich eine neue IP bekommt.
  • Datei ausführbar machen chmod a+x reconnect.sh
  • Testen mit ./reconnect.sh

Hintergrund

Unitymedia vergibt nur in festen Zyklen neue IPs und merkt sich anhand der MAC Adresse Eure alte IP. Wenn das Modem neugestartet wird, wird also erstmal kontrolliert ob es eine aktuelle IP für die MAC Adresse gibt und NUR eine neue vergeben, wenn eine neue/geänderte MAC Adresse vorliegt.
Deswegen muß diese zwangsläufig erst durch das Skript geändert werden.

Disclaimer

Das ganze ist ein rein akademischer Versuch! Ich distanziere mich ausdrücklich von der aktiven Nutzung der hier aufgezeigten technischen Machbarkeitsstudie und übernehme keine Haftung für eventuelle Schäden jeglicher Art.

Wieso der Disclaimer?

Naja, als Programmierer habe ich einfach versucht eine selbstgestellte Aufgabe zu lösen. Mir geht es nicht darum, diese auch anzuwenden. Das Script habe ich veröffentlicht, um anderen bei ähnlich gelagerten Problemen eine erste Lösungsskizze anzubieten! Wer es nutzt, ist selbst verantwortlich…

Bedenkt, das der IP Adressraum ein begrenzter Bereich ist. Ein Mißbrauch der aufgezeigten Lösung hätte negative Konsequenzen für alle User.
Eine einmal benutzte IP Adresse wird mitunter 24 Stunden beim Provider gesperrt (Lease Time) bis diese wieder in den IP Pool zurückwandert, darüber sollte man sich mal Gedanken machen! Wenn jeder DSL Kunde das 100 mal pro Tag machen würde, könnte sich nachher niemand mehr einloggen…

Achso, das ganze ist nicht zu 100% auf meinem Mist gewachsen, ich hab mir im Gulli Forum Anregungen zu den curl Aufrufen geholt.

Viel Spaß beim Testen und bei Fragen nutzt die Kommentarfunktion.

Über den Autor

Kevin

Ich bin ein Tech Geek & Developer der Generation C64, begeistere mich für Open Source Software, lese gerne Bücher, springe aus Flugzeugen, halte die Luft beim Apnoetauchen an, hebe beim Kraftsport schwere Sachen hoch und übe seit Jahren das bloggen ... mehr erfahren

23 Kommentare

  • Ich habe nicht verstanden. Wie man, wohin, dass machen muss. Kannst du die fertige Datei machen?, und ich werde es herunterladen, oder mach ein paar Scrinshot, dass, wohin machen, aufzusparen und abzuschreiben
    BITTE bitte bitte!!!!!!!!

  • Öffne einfach einen Editor, speicher die Datei ab. Dann in der Bash ein „chmod a+x dateiname“ und die Datei über „./dateiname“ ausführen.

    Linux Basics kannst Du z.B. bei ubuntuusers.de nachlesen 🙂

  • Hallo Rainer, Du hast ja entweder ein Modem/Router oder aber eine feste IP. Zweites ist normalerweise nur bei Unternehmennetzen der Fall, da helfen nur Proxies.
    Wenn Du aber zuhause sitzt, wovon ich ausgehe, wirst Du auch ein Gerät haben das zwischen Deinem Computer und dem Netz (also Deinem Provider) kommuniziert. Das musst Du identifizieren und dann nachschauen wie man damit ein Reconnect hinbekommt.

  • Hi Kevin,
    Danke für die Rückmeldung. Ich habe exakt das Kabelmodem für das Script (Motorola SBV5121E) und betreibe das über eine PCI-Netzwerkkarte. Bei Windows konnte ich die MAC-Adresse der Netzwerkkarte über das Programm „MacMakeUp“ ändern. Meine Frage ist jetzt: Wie mach ich das mit Ubuntu?
    Bzw.: Wie muss Dein Script dafür geändert werden? Dort wird ja sowohl das Kabelmodem, als auch der Router (WGR614) angesprochen.

  • danke, hat wunderbar funktioniert.
    allerdings muss ich es als sudo ausführen. das funzt dann deswegen leider nicht im jdownloader. hat jemand ne idee, welche rechte ich ändern müsste?

    thx…

  • Hi trulla,
    führ einfach ein „sudo chmod a+x reconnect.sh“ auf Dein Script aus, danach darf es jeder ausführen. Oder Du änderst den Owner auf Dich mit „sudo chown DeinName reconnect.sh“ – beides vorrausgesetzt das Script heisst bei Dir auch tatsächlich reconnect.sh 😉

  • Hi Kevin,

    vielen Dank für deine Mühe! Eine kurze Frage habe ich nur: ginge das ganze auch ohne Modem? Ich z.B. habe lediglich so einen „Splitter“ von unitymedia installiert…

    ‚N Guten Rutsch wünscht dir und allen Besuchern deiner Seite

    Heino

  • Hallo Heino,

    das wundert mich jetzt ein bißchen… ohne Router kenne ich und da würde es auch gehen. Aber nur mit Splitter? Ne, keine Ahnung, die Kombination ist mir noch nicht begegnet, da weiß ich leider auch nicht weiter.

    Viele Grüße
    Kevin

  • Hi Kevin,

    mhhh, ich hab wirklich wenig Ahnung. Was kennst du denn ohne Splitter? Wenn ich den Router von unitymedia weglasse (was ich ja bislang tue) bleibt bei mir nur der Splitter (ich hoffe, das Ding heißt auch wirklich so) übrig.

    Grüße,

    Heino

  • Meinst Du vielleicht diese braune Box, wo auch das Fernsehkabel reingeht? Hab mir das gestern beim Kumpel mal angeschaut…
    Wenn Du es nur damit benutzt, sollte es auch gehen. Ich kann das hier leider nicht testen, aber ich denke der Vorgang ist ähnlich. Du musst nur den Teil „MAC-Übergabe an Router und Restart“ austauschen gegen ein Script, das Deine eigene MAC Adresse ändert. Dann solltest Du von Unitymedia auch wieder eine neue IP zugewiesen bekommen.

  • Hallo Kevin,

    vielen Dank für die Erläuterungen. Leider bekomme ich bei mir immer folgenden Fehler:

    ————
    curl: (56) Failure when receiving data from the peer
    curl: (56) Failure when receiving data from the peer
    curl: (52) Empty reply from server
    ————

    Leider komme ich irgendwie nicht auf die Fehler. Wäre super wenn Du mir helfen könntest. Hast Du eine Idee wie ich das debuggen kann?

    Vielen Dank!
    Spider

  • Hallo Kevin,

    ich weiss nicht ob mein Eintrag gelöscht wurde oder ich vielleicht auch nichr mehr abgeschickt habe. Ich bekomme einen Fehler bei dem Aufruf des Scripts. Kann Dir die Fehler schicken?

    Danke schon einmal!
    Mark

  • Hallo Kevin!
    Erst einmal ein kräftiges DANKE für die zur-Verfügung-Stellung des Scripts!

    Zwei Dinge quälen mich derzeit, möglicherweise bin ich nicht der Einzige.

    Die Variablen USER_MODEM und PASS_MODEM habe ich bereits herausgefunden – dabei handelt es sich um die Zugangsdaten für den Router.

    Aber aus USER_ROUTER und PASS_ROUTER werde ich nicht ganz schlau.

    Zudem bekomme ich genau wie der Kollege oben die Fehler:

    curl: (56) Failure when receiving data from the peer
    curl: (56) Failure when receiving data from the peer
    curl: (7) couldn’t connect to host

    Wäre über Hilfe sehr dankbar!
    LG

  • Hallo Mario,
    ich habe das Script ewig nicht mehr benutzt, deswegen kann ich zu den Fehlern nichts sagen, sorry. Ich vermute aber mal wild drauflos, das eventuell die IP Adresse eines der Geräte anders lautet, also die von mir verwendeten 192.168.1.1 und 192.168.100.1. Probier das mal, eventuell auch http://www.routerlogin.net anstatt 192.168.1.1.
    Bzgl. der Variablen: X_ROUTER sind die Zugangsdaten zum Netgear Router, die X_MODEM Variablen beziehen sich auf das Motorola Kabelmodem. Die Daten oben sind die Standardzugangsdaten, die muss man eventuell noch anpassen, wenn man die manuell geändert hat.
    Dann habe ich gesehen, das da noch mein Home Verzeichnis hard-codiert drin steht /home/kevin/… das muß man auch noch anpassen (hier kann man /home/kevin/ durch ~/ ersetzen).
    Ich freue über Feedback, wenn durch irgendwas rausfindest, dann könnte ich für die nächsten Besucher mal das Script etwas optimieren.
    Viele Grüße
    Kevin

  • Danke für die Antwort.
    Ja, dass das Home-Verzeichnis hardcodiert ist, ist mir gleich beim ersten Studieren des Scripts aufgefallen.
    Die Verzeichnisse (scripts/ips) werden nicht automatisch angelegt und man benötigt auch das Paket curl.
    Aber das sind eher Kleinigkeiten, die man entweder bemerkt oder bemerken wird.

    Wie ich sehe habe ich einen Thompson Router und Modem in einem, die Adresse lautet http://192.168.100.1/ – unter 192.168.1.1 finde ich gar nichts.

    Nachdem ich die 1.1er mit der 100.1er ausgetauscht habe (da Router und Modem vermutlich dasselbe Gerät sind) bekomme ich noch zusätzlich den Fehler:
    reconnect.sh: 71: let: not found

    Merkwürdig.

    In den Logdaten konnte ich auch nichts wirklich verwendbares finden, aber scheinbar bin ich der Einzige hier, der dieses Problem hat… bzw. angeschrieben/gesprochen hat.

    Leider ist der Failure-Error auch viel zu allgemein verfasst, alsdass man wirklich Rückschlüsse auf die tatsächliche Ursache ziehen könnte (lt. Google haben die meisten mit diesem Fehler versucht ein Dokument herunter, bzw. hinaufzuladen).

    Wenn dir noch etwas einfällt – freue mich sehr auf Hilfestellungen.
    Danke auf jeden Fall!!

  • Tja „let“ ist ja nur ein Linux Befehl, bei mir (Ubuntu) ist der standardmäßig dabei. Musste mal schauen wo es den bei Dir gibt.
    Okay, wenn Du Konsolen- und Scripterfahrung hast, sollte das nicht so schwer sein, wenn beide Geräte in einem sind, sollte es sogar noch deutlich leichter sein. Allerdings nutzt Du ja ein völlig anderes Gerät, deswegen nur die Theorie:
    Also, such mal nach der Webmaske wo man die MAC Adresse des Modems ändern kann. Dort einfach die Formular Parameter raussuchen (Firebug, Quelltext anzeigen o.ä.) und den Curl Aufruf oben entsprechend anpassen. Das gleiche musst Du machen mit dem Formular, das das Modem neu startet. Das wars dann auch schon, Du simulierst also eigentlich nur die manuellen Klicks der Webmaske.

Von Kevin
Kevin Papst Freiberuflicher Software Entwickler

Rubriken

Stichwörter

Get in touch