Pages : 1
#1 Le 09/10/2007, à 23:18
- lesauc
Script installation Livebox
Bonjour ,
Chers amis développeurs, je suis tombé il y a peu de temps sur 2 scripts de la distribution française Kaella qui permettent apparement d'installer le wifi sur livebox plus facilement, étant donné les difficultées rencontrées par de nombreux utilisateurs (moi même , franchement j'ai galéré ( et j'y serais toujours si un certain safe93 ne m'avait pas filé un sérieux coup de main))
Voici donc les scripts tels quels :
le 1er
echo "========================================================================="
echo "Lancement du script de connexion à l'ADSL par Livebox en Wifi."
echo "Suivez les instructions, et la connexion sera établie."
echo "========================================================================="
sudo /usr/share/kaella/drivers/box.py
echo -e "Appuyez sur Entrée pour terminer\c" ; read toto
le 2nd :
#! /usr/bin/env python
# -*- coding: iso-8859-1 -*-
###############################################################
# Ce programme est distribué sous licence GPL
# Vous êtes libre de le modifier et/ou de le distribuer
# Une copie de la licence GPL est disponible sur votre système
# dans /usr/share/common-licenses/GPL
#
# CE PROGRAMME EST DISTRIBUÉ "TEL QUEL" AUCUNE GARANTIE DE
# QUELQUE NATURE QUE CE SOIT NE PEUT ÊTRE ACCORDÉE
#
# Auteur Dominique Müller (zhorglub CHEZ wanadoo POINT fr)
#
# N'oubliez pas de 'tomber' les interfaces inutilisées AVANT
# d'exécuter le script (par ex.: ~# ifconfig eth0 down, si vous comptez
# vous connecter à l'Internet avec une autre interface)
# puis ~# python box.py (en root) pour lancer le script
#
##############################################################
import pygtk
pygtk.require('2.0')
import gtk
import os
import os.path
import string
class App:
def __init__(self):
self.wnd = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.wnd.set_title("Configurer une passerelle domestique")
self.wnd.set_border_width(2)
self.basebox = gtk.VBox(False, 0)
self.radiobox = gtk.VBox(False,0)
self.wnd.add(self.basebox)
self.toetc = False
if self.check_user():
self.l1 = gtk.Label(""" 1. Selectionnez le type de connexion que vous souhaitez utiliser """)
self.basebox.pack_start(self.l1, True, False, 0)
self.l1.show()
self.basebox.pack_start(self.radiobox, False, False, 15)
self.radio = gtk.RadioButton(None, """Connexion par cable ethernet ou
configuration reseau""")
self.radio.connect("toggled", self.res_set, 0)
self.radio.set_active(True)
self.radiobox.pack_start(self.radio, False, False, 5)
self.radio.show()
self.resolution = 0
self.radio = gtk.RadioButton(self.radio, "Connexion par cable USB")
self.radio.connect("toggled", self.res_set, 1)
self.radiobox.pack_start(self.radio, False, False, 5)
self.radio.show()
self.radio = gtk.RadioButton(self.radio, "Connexion WIFI (Ndiswrapper)")
self.radio.connect("toggled", self.res_set, 2)
self.radiobox.pack_start(self.radio, False, False, 5)
self.radio.show()
self.radiobox.show()
self.l2 = gtk.Label(" ")
self.basebox.pack_start(self.l2, True, True, 0)
self.l2.show()
self.separator1 = gtk.HSeparator()
self.basebox.pack_start(self.separator1, False, True, 5)
self.separator1.show()
self.btn1 = gtk.Button(" Annuler ")
self.basebox.pack_end(self.btn1, True, False, 0)
self.btn1.connect("clicked", gtk.main_quit, None)
self.btn1.show()
self.btn0 = gtk.Button(" Etape suivante >> ")
self.basebox.pack_end(self.btn0, True, False, 0)
self.btn0.connect("clicked", self.next_1, None)
self.btn0.show()
self.basebox.show()
self.wnd.show()
return
def res_set(self, w, data):
self.resolution = data
if data == 1:
os.system('modprobe usbnet')
return
def dhcp_set(self, w, data):
self.dhcp = data
return
def next_1(self, w, data):
# Détection des cartes réseaux (portage: idem netcardconfig)
self.NETDEVICES = []
s = None
i,o = os.popen2("cat /proc/net/dev | awk -F: '/eth.:|tr.:|wlan.:/{print $1}'")
i.close()
while s != '':
s = o.readline()
tmp = ''
for c in s:
if c >= '0':
tmp = tmp + c
s = tmp
self.NETDEVICES = self.NETDEVICES + [s]
o.close()
self.l1.destroy()
self.radiobox.destroy()
self.l2.destroy()
self.btn0.destroy()
self.separator1.destroy()
self.l1 = gtk.Label(""" 2. Selectionnez le type d'adresse IP a configurer (statique/dynamique) """)
self.basebox.pack_start(self.l1, True, True, 0)
self.l1.show()
self.radiobox = gtk.VBox(False,0)
self.basebox.pack_start(self.radiobox, False, False, 15)
self.radio = gtk.RadioButton(None, "Attribuer automatiquement une adresse (DHCP)")
self.radio.connect("toggled", self.dhcp_set, True)
self.radio.set_active(True)
self.radiobox.pack_start(self.radio, False, True, 5)
self.radio.show()
self.dhcp = True
self.radio = gtk.RadioButton(self.radio, "Configuration manuelle (IP statique)")
self.radio.connect("toggled", self.dhcp_set, False)
self.radiobox.pack_start(self.radio, False, True, 5)
self.radio.show()
self.radiobox7 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox7, False, False, 5)
self.sauver = gtk.CheckButton(" Sauver vers /etc/network/interfaces")
self.radiobox7.pack_end(self.sauver, False, True, 5)
self.sauver.show()
infobulles = gtk.Tooltips()
infobulles.set_tip(self.sauver, "Cochez cette case pour sauvegarder la configuration\nVotre interface reseau sera alors disponible au demarrage sans passer par un script ou une suite de commandes.")
self.sauver.connect("toggled", self.fsavetoetc, None)
self.radiobox7.show()
self.radiobox.show()
self.l2 = gtk.Label(" ")
self.basebox.pack_start(self.l2, True, True, 0)
self.l2.show()
self.btn0 = gtk.Button(" Etape suivante >> ")
self.basebox.pack_end(self.btn0, True, False, 0)
self.btn0.connect("clicked", self.next_2, None)
self.btn0.show()
self.separator1 = gtk.HSeparator()
self.basebox.pack_end(self.separator1, False, True, 5)
self.separator1.show()
return
def next_2(self, w, data):
if self.dhcp:
self.next_3(w, data)
else:
self.l1.destroy()
self.radiobox.destroy()
self.l2.destroy()
self.btn0.destroy()
self.separator1.destroy()
self.l1 = gtk.Label(""" Veuillez indiquer dans les champs suivants les valeurs
de configuration de votre reseau.
Pour la Livebox d'Orange, les valeurs par defaut conviennent dans la plupart des cas.
Ajustez alors le parametre 'Adresse IP' en fonction de vos besoins """)
self.basebox.pack_start(self.l1, True, True, 0)
self.l1.show()
self.radiobox = gtk.VBox(False,0)
self.basebox.pack_start(self.radiobox, False, False, 15)
self.radiobox1 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox1, False, False, 5)
lbl = gtk.Label("Adresse IP ")
self.radiobox1.pack_start(lbl, False, False, 5)
lbl.show()
self.ip = gtk.Entry(max=0)
self.radiobox1.pack_end(self.ip, False, False, 5)
self.ip.set_text("192.168.1.51")
self.ip.show()
self.radiobox1.show()
self.radiobox2 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox2, False, False, 5)
lbl = gtk.Label(" Masque de sous-reseau ")
self.radiobox2.pack_start(lbl, False, False, 0)
lbl.show()
self.netmask = gtk.Entry(max=0)
self.radiobox2.pack_end(self.netmask, False, True, 5)
self.netmask.set_text("255.255.255.0")
self.netmask.show()
self.radiobox2.show()
self.radiobox3 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox3, False, False, 5)
lbl = gtk.Label(" Masque de diffusion reseau")
self.radiobox3.pack_start(lbl, False, False, 0)
lbl.show()
self.broadcast = gtk.Entry(max=0)
self.radiobox3.pack_end(self.broadcast, False, True, 5)
self.broadcast.set_text("192.168.1.255")
self.broadcast.show()
self.radiobox3.show()
self.radiobox4 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox4, False, False, 5)
lbl = gtk.Label(" Adresse de la passerelle ")
self.radiobox4.pack_start(lbl, False, False, 0)
lbl.show()
self.gateway = gtk.Entry(max=0)
self.radiobox4.pack_end(self.gateway, False, True, 5)
self.gateway.set_text("192.168.1.1")
self.gateway.show()
self.radiobox4.show()
self.radiobox5 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox5, False, False, 5)
lbl = gtk.Label(" Serveur DNS primaire")
self.radiobox5.pack_start(lbl, False, False, 0)
lbl.show()
self.dns = gtk.Entry(max=0)
self.radiobox5.pack_end(self.dns, False, True, 5)
self.dns.set_text("80.10.246.130")
self.dns.show()
self.radiobox5.show()
self.radiobox6 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox6, False, False, 5)
lbl = gtk.Label(" Serveur DNS secondaire")
self.radiobox6.pack_start(lbl, False, False, 0)
lbl.show()
self.dns2 = gtk.Entry(max=0)
self.radiobox6.pack_end(self.dns2, False, True, 5)
self.dns2.set_text("80.10.246.3")
self.dns2.show()
self.radiobox6.show()
self.radiobox.show()
self.l2 = gtk.Label(" ")
self.basebox.pack_start(self.l2, True, True, 0)
self.l2.show()
self.btn0 = gtk.Button(" Etape suivante >> ")
self.basebox.pack_end(self.btn0, True, False, 0)
self.btn0.connect("clicked", self.next_3, None)
self.btn0.show()
self.separator1 = gtk.HSeparator()
self.basebox.pack_end(self.separator1, False, True, 5)
self.separator1.show()
return
def next_3(self, w, data):
if self.dhcp == False:
self.IP = self.ip.get_text()
self.NETMASK = self.netmask.get_text()
self.BROADCAST = self.broadcast.get_text()
self.GATEWAY = self.gateway.get_text()
self.DNS = self.dns.get_text()
self.DNS2 = self.dns2.get_text()
self.l1.destroy()
self.radiobox.destroy()
self.l2.destroy()
self.btn0.destroy()
self.separator1.destroy()
if self.resolution == 2:
self.l1 = gtk.Label(""" Renseignez les champs suivants pour configurer
le dongle Wifi fourni avec votre passerelle a l'aide de NdisWrapper
NdisWrapper utilise les pilotes Windows(TM) pour votre materiel wifi, il lui
faut connaitre leur emplacement pour les assimiler, toute resistance serait futile.
Il est possible que cela ne puisse pas fonctionner avec votre materiel
Si la Force est avec vous, tout se passera bien """)
self.basebox.pack_start(self.l1, True, True, 0)
self.l1.show()
self.radiobox = gtk.VBox(False,0)
self.basebox.pack_start(self.radiobox, False, False, 15)
self.radiobox1 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox1, False, False, 5)
lbl = gtk.Label(" Emplacement des pilotes Ndis/Windows (*.inf) ")
self.radiobox1.pack_start(lbl, False, False, 5)
lbl.show()
self.choix_ndis = gtk.Button(" Parcourir ")
self.choix_ndis.connect("clicked", self.select_ndis, None)
self.choix_ndis.show()
self.radiobox1.pack_end(self.choix_ndis, True, True, 0)
self.choix_ndis.show()
self.ndis_path = gtk.Entry(max=0)
self.radiobox1.pack_end(self.ndis_path, False, False, 5)
self.ndis_path.show()
self.radiobox1.show()
self.radiobox2 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox2, False, False, 5)
lbl = gtk.Label(" Votre ESSID ")
self.radiobox2.pack_start(lbl, False, False, 0)
lbl.show()
self.essid = gtk.Entry(max=0)
self.radiobox2.pack_end(self.essid, False, True, 5)
self.essid.set_text("Wanadoo_xxxx")
self.essid.show()
scan = gtk.Button(' Scanner les reseaux ')
self.radiobox2.pack_end(scan, False, False, 0)
scan.show()
scan.connect("clicked", self.scan_ntwk, None)
self.radiobox2.show()
self.radiobox3 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox3, False, False, 5)
lbl = gtk.Label(" Clef WEP (avec les tirets) ")
self.radiobox3.pack_start(lbl, False, False, 0)
lbl.show()
self.wep = gtk.Entry(max=0)
self.radiobox3.pack_end(self.wep, False, True, 5)
self.wep.show()
self.radiobox3.show()
self.radiobox4 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox4, False, False, 5)
lbl = gtk.Label(""" IMPORTANT: N'oubliez pas de mettre votre passerelle en association
et d'ajouter l'adresse MAC de votre peripherique a la liste de filtrage
a l'aide de l'interface web (http://192.168.1.1 depuis votre navigateur)
""")
self.radiobox4.pack_start(lbl, False, False, 0)
lbl.show()
self.radiobox4.show()
self.radiobox.show()
self.l2 = gtk.Label(" ")
self.basebox.pack_start(self.l2, True, True, 0)
self.l2.show()
self.btn0 = gtk.Button(" Configurer ! ")
self.basebox.pack_end(self.btn0, True, False, 0)
self.btn0.connect("clicked", self.next_4, None)
self.btn0.show()
self.separator1 = gtk.HSeparator()
self.basebox.pack_end(self.separator1, False, True, 5)
self.separator1.show()
elif self.resolution == 1:
self.l1 = gtk.Label(""" Assurez-vous que le cable USB est bien connecte a votre machine
et a la passerelle
Il est possible que cela ne puisse pas fonctionner avec votre materiel
Si la Force est avec vous, tout se passera bien """)
self.basebox.pack_start(self.l1, True, True, 0)
self.l1.show()
self.radiobox = gtk.VBox(False,0)
self.basebox.pack_start(self.radiobox, False, False, 15)
self.radiobox1 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox1, False, False, 5)
lbl = gtk.Label(" Interface reseau ")
self.radiobox1.pack_start(lbl, False, False, 5)
lbl.show()
self.iface = self.netliste()
self.radiobox1.pack_end(self.iface, False, False, 5)
self.iface.show()
self.radiobox1.show()
self.radiobox.show()
self.l2 = gtk.Label(" ")
self.basebox.pack_start(self.l2, True, True, 0)
self.l2.show()
self.btn0 = gtk.Button(" Configurer ! ")
self.basebox.pack_end(self.btn0, True, False, 0)
self.btn0.connect("clicked", self.next_4, None)
self.btn0.show()
self.separator1 = gtk.HSeparator()
self.basebox.pack_end(self.separator1, False, True, 5)
self.separator1.show()
elif self.resolution == 0:
self.l1 = gtk.Label(""" Assurez-vous que le cable Ethernet est bien connecte a votre machine
et a la passerelle
C'est le mode de connexion recommande avec Debian GNU/Linux, tant pour la simplicite
que pour la rapidite des transferts
Il est possible que cela ne puisse pas fonctionner avec votre materiel si vous avez souscrit
certaines options comme la Visiophonie ou le service de television, ces fonctionnalites
empechant l'utilisation des ports Ethernet (rouge et jaune sur le cote de la passerelle)
Il vous faudra alors passer par l'interface web pour les desactiver ou choisir un autre
mode de connexion.
Si la Force est avec vous, tout se passera bien """)
self.basebox.pack_start(self.l1, True, True, 0)
self.l1.show()
self.radiobox = gtk.VBox(False,0)
self.basebox.pack_start(self.radiobox, False, False, 15)
self.radiobox1 = gtk.HBox(False, 0)
self.radiobox.pack_start(self.radiobox1, False, False, 5)
lbl = gtk.Label(" Interface reseau ")
self.radiobox1.pack_start(lbl, False, False, 5)
lbl.show()
self.iface = self.netliste()
self.radiobox1.pack_end(self.iface, False, False, 5)
self.iface.show()
self.radiobox1.show()
self.radiobox.show()
self.l2 = gtk.Label(" ")
self.basebox.pack_start(self.l2, True, True, 0)
self.l2.show()
self.btn0 = gtk.Button(" Configurer ! ")
self.basebox.pack_end(self.btn0, True, False, 0)
self.btn0.connect("clicked", self.next_4, None)
self.btn0.show()
self.separator1 = gtk.HSeparator()
self.basebox.pack_end(self.separator1, False, True, 5)
self.separator1.show()
return
def get_active_text(self, combobox):
model = combobox.get_model()
active = combobox.get_active()
if active < 0:
return None
return model[active][0]
def scan_ntwk(self, w, d):
i,o = os.popen2("cat /proc/net/dev | grep 'wlan0'")
i.close()
s = o.read()
o.close()
if s != '': # Le périf existe déjà
print "iwlist wlan0 scanning effectue a partir du peripherique deja configure existant"
essid_list = self.iwlist_exec()
if essid_list != False:
self.essid.destroy()
self.essid = essid_list
self.radiobox2.pack_end(self.essid, False, True, 5)
self.essid.show()
elif self.ndis_path.get_text() != '' and s == '': # Un path ndis existe
print "ndis_path ok --> Installation du pilote et execution de iwlist wlan0 scanning\n"
print "Installation du pilote situe dans " + self.ndis_path.get_text() + "\n"
ccmd = "ndiswrapper -i " + self.ndis_path.get_text() + "\n"
os.system(ccmd)
print "Insertion du module, croisez les doigts...\n"
os.system('modprobe ndiswrapper')
print "Recherche des reseaux sans fil...\n"
os.system('sleep 3')
essid_list = self.iwlist_exec()
if essid_list != False:
self.essid.destroy()
self.essid = essid_list
self.radiobox2.pack_end(self.essid, False, True, 5)
self.essid.show()
else: # Sinon --> Message d'information
self.dialog = gtk.Dialog("Information: Scan impossible !", self.wnd, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, None)
string = """
Erreur: Vous n'avez pas indique de chemin pour les pilotes ndis
et aucun peripherique wifi n'est actuellement disponible !
"""
label = gtk.Label(string)
self.dialog.vbox.pack_start(label, False, True, 10)
label.show()
sep = gtk.HSeparator()
self.dialog.vbox.pack_start(sep, False, True, 10)
sep.show()
val = gtk.Button(None, gtk.STOCK_OK)
self.dialog.vbox.pack_end(val, False, True, 10)
val.show()
val.connect("clicked", self.dialogdestroy)
self.dialog.show()
return
def dialogdestroy(self, w):
self.dialog.destroy()
return
def iwlist_exec(self):
i,o = os.popen2('iwlist wlan0 scanning')
i.close()
essids = []
s = None
i = 0
while s !='':
s = o.readline()
p = string.find(s, 'ESSID:"')
if p != -1:
i = i + 1
essids = essids + [s[p+6:-1]]
o.close()
print essids
if i > 1:
print str(i) + " reseaux sans fil ont ete trouves"
elif i == 0:
print "Aucun reseau sans fil detecte"
else:
print "1 reseau sans fil a ete trouve"
if i != 0:
list_essids = gtk.combo_box_new_text()
for item in essids:
if item != '':
list_essids.append_text(item)
list_essids.set_active(0)
else:
list_essids = False
return list_essids
def netliste(self):
iface = gtk.combo_box_new_text()
for line in self.NETDEVICES:
if line != '':
iface.append_text(line)
iface.set_active(0)
return iface
def next_4(self, w, data):
if (self.resolution == 0) or (self.resolution == 1):
self.IFACE = self.iface.get_active_text()
self.l1.destroy()
self.radiobox.destroy()
self.l2.destroy()
self.btn0.destroy()
self.separator1.destroy()
if self.dhcp:
self.l1 = gtk.Label(""" Configuration de l'interface reseau: """ + self.IFACE + """
Adresse IP automatique par DHCP """)
os.system("pump -k -i " + self.IFACE)
os.system("ifconfig " + self.IFACE + " down")
os.system("pump -i " + self.IFACE)
self.writeToEtc()
else:
self.l1 = gtk.Label(""" Configuration de l'interface reseau: """ + self.IFACE + """
selon vos parametres personnels (IP statique) """)
os.system("pump -k -i " + self.IFACE)
ccmd = self.static_ip_config()
os.system(ccmd)
self.basebox.pack_start(self.l1, True, True, 0)
self.l1.show()
self.btn1.destroy()
self.btn0 = gtk.Button(" Fin de la configuration ")
self.basebox.pack_end(self.btn0, True, False, 0)
self.btn0.connect("clicked", gtk.main_quit, None)
self.btn0.show()
self.separator1 = gtk.HSeparator()
self.basebox.pack_end(self.separator1, False, True, 5)
self.separator1.show()
elif self.resolution == 2:
self.NDIS_PATH = self.ndis_path.get_text()
try:
self.ESSID = self.essid.get_text()
except:
self.ESSID = self.essid.get_active_text()
if self.ESSID[0] == '"':
self.ESSID = self.ESSID[1:-1]
self.WEP = self.wep.get_text()
self.IFACE = "wlan0"
self.l1.destroy()
self.radiobox.destroy()
self.l2.destroy()
self.btn0.destroy()
self.separator1.destroy()
ccmd = "ndiswrapper -i " + self.NDIS_PATH + "\n"
os.system(ccmd)
i,o = os.popen2("ndiswrapper -l", "t")
i.close()
s = ""
s = s + " " + o.readline()
r = o.readline()
s = s + " " + r
s = s + " " + o.readline()
# ça, c'est du boulot à l'arrache :D !
# 3 lignes et bonsoir !
o.close()
l = len(r[:-36])
print r[l:]
self.l1 = gtk.Label(""" Si la ligne ci-dessous affiche le message:
driver installed, hardware present
Souriez, votre dongle est reconnu, sinon, ce script n'est pas la solution.
Resultat: """ + r[l:])
self.basebox.pack_start(self.l1, True, True, 0)
self.l1.show()
r = r[l:-2]
if string.find(r, "hardware present") != -1:
self.l2 = gtk.Label("""
Il semblerait que vous ayez de la chance, le module noyau est insere (modprobe ndiswrapper)
Votre connexion est (enfin devrait etre ;)) operationnelle
""")
self.basebox.pack_start(self.l2, True, True, 0)
self.l2.show()
ccmd = "ndiswrapper -m \n"
ccmd = ccmd + "modprobe ndiswrapper \n"
ccmd = ccmd + "iwconfig wlan0 essid " + self.ESSID + " \n"
if self.WEP != "":
ccmd = ccmd + "iwconfig wlan0 key " + self.WEP + " \n"
ccmd = ccmd + "ifconfig wlan0 up\n"
os.system(ccmd)
if self.dhcp:
os.system("pump -k -i " + self.IFACE)
os.system("ifconfig " + self.IFACE + " down")
os.system("pump -i " + self.IFACE)
self.writeToEtc()
else:
os.system("pump -k -i " + self.IFACE)
ccmd = self.static_ip_config()
os.system(ccmd)
self.btn0 = gtk.Button(" Fin de la configuration ")
self.basebox.pack_end(self.btn0, True, False, 0)
self.btn0.connect("clicked", gtk.main_quit, None)
self.btn0.show()
self.btn1.destroy()
self.separator1 = gtk.HSeparator()
self.basebox.pack_end(self.separator1, False, True, 5)
self.separator1.show()
else:
self.l2 = gtk.Label("""
Ooops! Le peripherique n'est pas reconnu (ou pas branche)
Desole, il faudra essayer autre chose... """)
self.basebox.pack_start(self.l2, True, True, 0)
self.l2.show()
self.l2 = gtk.Label(" ")
self.basebox.pack_start(self.l2, True, True, 0)
self.l2.show()
self.btn0 = gtk.Button(" Quitter ")
self.basebox.pack_end(self.btn0, True, False, 0)
self.btn0.connect("clicked", gtk.main_quit, None)
self.btn0.show()
self.btn1.destroy()
self.separator1 = gtk.HSeparator()
self.basebox.pack_end(self.separator1, False, True, 5)
self.separator1.show()
return
def fsavetoetc(self, w, d):
if w.get_active():
self.toetc = True
else:
self.toetc = False
return
def static_ip_config(self):
ccmd = "ifconfig " + self.IFACE + " " + self.IP + " netmask " + self.NETMASK + " broadcast " + self.BROADCAST + " up\n"
ccmd = ccmd + "route add default gw " + self.GATEWAY + "\n"
if self.DNS != '':
f=open('/etc/resolv.conf', 'w')
f.write('nameserver ' + self.DNS + "\n")
if self.DNS2 != '':
f.write('nameserver ' + self.DNS2 + "\n")
else:
f.write("nameserver 0.0.0.0\n")
f.close()
self.writeToEtc()
return ccmd
def writeToEtc(self):
if self.toetc:
g=open('/etc/network/interfaces','r')
s=g.read()
s2 = s
g.close()
f=open('/etc/network/interfaces.old', 'w')
f.write(s)
f.close()
p=string.find(s, 'auto ')
if p != -1:
p = p + 5
p2 = p + string.find(s[p:], "\n")
rp = string.find(s[p:p2], self.IFACE)
if rp == -1:
s2 = s[:p2] + ' ' + self.IFACE + s[p2:]
p3 = p2 + len(self.IFACE) + 1
s = s2
else:
p3 = p2
else:
p3 = 0
p=string.find(s[p3:], 'iface ' + self.IFACE)
if p == -1:
if not self.dhcp:
s2 = s + "\niface " + self.IFACE + " inet static\n"
s2 = s2 + " address " + self.IP + "\n"
s2 = s2 + " netmask " + self.NETMASK + "\n"
s2 = s2 + " network " + self.IP[:10] + "0\n"
s2 = s2 + " broadcast " + self.BROADCAST + "\n"
s2 = s2 + " gateway " + self.GATEWAY + "\n"
if self.resolution == 2:
s2 = s2 + " wireless-essid " + self.ESSID + "\n"
if self.WEP != '':
s2 = s2 + " wireless-key " + self.WEP + "\n"
else:
s2 = s + "\niface " + self.IFACE + " inet dhcp\n"
else:
if not self.dhcp:
s2 = s[:p+p3] + "iface " + self.IFACE + " inet static\n"
s2 = s2 + " address " + self.IP + "\n"
s2 = s2 + " netmask " + self.NETMASK + "\n"
s2 = s2 + " network " + self.IP[:10] + "0\n"
s2 = s2 + " broadcast " + self.BROADCAST + "\n"
s2 = s2 + " gateway " + self.GATEWAY + "\n"
if self.resolution == 2:
s2 = s2 + " wireless-essid " + self.ESSID + "\n"
if self.WEP != '':
s2 = s2 + " wireless-key " + self.WEP + "\n"
p4 = string.find(s[p+p3+6:], 'iface ')
if p4 != -1:
s2 = s2 + "\n" + s[p+p3+6+p4:]
else:
s2 = s[:p+p3] + "iface " + self.IFACE + " inet dhcp\n"
p4 = string.find(s[p+p3+6:], 'iface ')
if p4 != -1:
s2 = s2 + "\n" + s[p+p3+6+p4:]
f=open('/etc/network/interfaces', 'w')
f.write(s2)
f.close()
print s2
return
def select_ndis(self, w, d):
self.filew = gtk.FileSelection("Choisir le pilote Ndis/Windows")
self.filew.ok_button.connect("clicked", self.file_ok_sel)
self.filew.cancel_button.connect("clicked", self.file_cn_sel)
self.filew.show()
return
def file_ok_sel(self, w):
self.ndis_path.set_text(self.filew.get_filename())
self.filew.destroy()
return
def file_cn_sel(self, w):
self.filew.destroy()
return
def check_user(self):
os.system('whoami > /tmp/livebscript.tmp')
f = open('/tmp/livebscript.tmp', 'r')
l = f.readline()
f.close()
os.system('rm -f /tmp/livebscript.tmp')
if l[:4] != 'root':
self.l1 = gtk.Label(""" Vous devez avoir les privileges du super-utilisateur (root)
pour utiliser ce script ! """)
self.basebox.pack_start(self.l1, True, False, 0)
self.l1.show()
self.separator1 = gtk.HSeparator()
self.basebox.pack_start(self.separator1, False, True, 5)
self.separator1.show()
self.btn1 = gtk.Button(" Quitter ")
self.basebox.pack_end(self.btn1, True, False, 0)
self.btn1.connect("clicked", gtk.main_quit, None)
self.btn1.show()
self.basebox.show()
return False
return True
def main():
gtk.main()
if __name__ == "__main__":
root = App()
main()
Voilà, peut on l'adapter à Ubuntu et s oui est-ce que cela fonctionne ?Merci
Sur ce : à tantôt...
Depuis Ubuntu 11.04
Espérez le meilleur, envisagez le pire, et prenez ce qui vient !
Hors ligne
Pages : 1