Forthnet SMS


Ενα python script για οσους συνδρομητες της Forthnet δεν θελουν να χρησιμοποιουν την σελιδα της για να στελνουν τα 50 δωρεαν sms που δικαιουνται καθε μηνα. Μπορει επισης να χρησιμοποιηθει σε jailbroken iPhone και Android. Τα προαπαιτουμενα του, η Python και η βιβλιοθηκη της, mechanize. Η εγκατασταση της τελευταιας μπορει να γινει μεσω pip (pip install mechanize)μεσω easy_install (easy_install mechanize) ή απο το site της (download και install).

Συγκεκριμενα για Android θα πρεπει να γινει εγκατασταση του SL4A (Scripting Layer for Android) και στη συνεχεια η εγκατασταση της mechanize, δηλαδη download του tar απο το site της και extraction μονο του φακελου source στο φακελο με τα υπολοιπα scripts. Τελος ενα ‘import mechanize’ αρκει για την εγκατασταση της.

Σε iPhone ειναι ελαφρως πιο χρονοβορα η εγκατασταση, αλλα παραμενει και παλι απλη. Αρχικα εγκασταση της Python. Download του .deb της τελευταιας συμβατης με το iPhone εκδοσης. Απ’το terminal ή τον ssh client: wget https://github.com/linusyang/python-for-ios/releases/download/v2.7.6-3/python_2.7.6-3_iphoneos-arm.deb και στη συνεχεια εγκατασταση της με dpkg -i python_2.7.6-3_iphoneos-arm.deb. Τελος εγκατασταση της mechanize: easy_install mechanize. To script:

#Forthnet SMS python script

import mechanize
import cookielib
import getpass

#User input

print “What’s your email?”
username = raw_input()
print “What’s your password?”
password = getpass.getpass()

#Browser

br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
br.addheaders = [(‘User-agent’, ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:28.0) Gecko/20100101 Firefox/28.0’)]
r = br.open(‘https://www-old.forthnet.gr/secure/webSMS/login.aspx?ReturnUrl=%2fsecure%2fwebsms%2fdefault.aspx&xss_mode=l’)

#Authentication

br.select_form(nr=0)
br.form[‘Username’] = username
br.form[‘Password’] = password
br.submit()

#SMS sending

br.select_form(nr=0)
print “Phone Number:”
number = raw_input()
br.form[‘txtTo’] = number
print “SMS Text:”
message = raw_input()
br.form[‘txtMessage’] = message
br.submit()
print “SMS sent.”

#History

smsThisMonthPage = br.open (‘https://www-old.forthnet.gr/secure/websms/History.aspx’)
smsHTML = smsThisMonthPage.read()
index = smsHTML.find(‘/ 50’)
print “You have sent”,smsHTML[(index3):index],“out of 50 free SMS this month”

 

και το repository του στο github (pull requests καλοδεχουμενα 🙂 ). O παραπανω κωδικας μπορει να αυτοματοποιηθει ακομα περισσοτερο ενσωματωνοντας το username και το password μεσα σ αυτον, προκειμενου να μην χρειαζεται καθε φορα η πληκτρολογηση τους απο τον χρηστη. Οι μονες αλλαγες που πρεπει να γινουν:

#User input

print “What’s your email?”
username = ‘your-username-here@ath.forthnet.gr’
print “What’s your password?
password = ‘your-password-here’

 

Προφανως υπαρχει ενα σοβαρο μειονεκτημα σ αυτη τη λυση, το username και το password παραμενουν αποθηκευμενα χωρις ιχνος κρυπτογραφησης και ειναι προσβασιμα απο οποιονδηποτε εχει προσβαση στο συστημα που τρεχει το script. Ευκολια Vs Ασφαλεια. Το script σε λειτουργια, αποστολη sms στο iPhone απο το οποιο εκτελεστηκε:

 

sms   sms2

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.