Change your IP with livebox

If you have livebox wireless router you could easily change you dynamic IP. It is handy if you download files from rapidshare. Here is the python code. It was tested on polish livebox. You could download code from here.

#!/usr/bin/python
import base64
import  urllib2
import urllib

def send(data, host, passwd):
    "send request to livebox SubmitInternetService."
    action = 'http://%s/SubmitInternetService' % host
    req = urllib2.Request(action, urllib.urlencode(data))
    passwd = base64.b64encode('%s:%s' % ('admin', passwd))
    req.add_header('Authorization',  'Basic %s' % passwd)
    request = urllib2.urlopen(req)
    return request.read()

def disconnect(host, passwd):
    "disconnect from internet."
    data = {'ACTION_DISCONNECT': 'Roz<span>&</span>#322;<span>&</span>#261;cz'}
    return send(data, host, passwd)

def connect(host, passwd):
    "connect to the internet."
    data = {'ACTION_CONNECT': 'Po<span>&</span>#322;<span>&</span>#261;cz'}
    return send(data, host, passwd)</pre>
You can use this functions like this.
<pre>if __name__ == '__main__':
    from sys import argv
    opts, rest = getopt(argv[1:], 'p:h:')
    opts = dict(opts)
    if len(rest) == 0:
        passwd = opts.get('-p', 'admin')
        host = opts.get('-h', '192.168.1.1')
        try:
            disconnect(host, passwd)
            connect(host, passwd)
        except urllib2.HTTPError, e:
            if e.code == 401:
                print 'wrong password'
            else:
                print 'Error: %s' % e.args
            exit(1)
        except urllib2.URLError, e:
            print 'Error: %s' % ' '.join(e.args)
        else:
            print "password successfuly changed"

You could use this progam like this:

change_ip.py -h <your host> -p <your password>

Default host is 192.168.1.1 and default password is admin

Published by

jcubic

I'm a web developer from Poland with a focus on JavaScript.

Leave a comment