Sponsored Content
Top Forums Shell Programming and Scripting Can someone convert this python script to perl Post 303024717 by azdps on Monday 15th of October 2018 08:09:48 PM
Old 10-15-2018
Can someone convert this python script to perl

There is a python script that I would like converted to a perl script. If someone has the time to convert the script I would appreciate it. You can find the script below:

reboot-mb8600/reboot-mb8600.py at master . j4m3z0r/reboot-mb8600 . GitHub

Code:
#!/usr/bin/python

'''
A hacky script to reboot the Motorola MB8600 modem.
'''

import urllib, urllib2, sys
from bs4 import BeautifulSoup

MODEM_IP = '192.168.100.1'
USERNAME = 'admin'
PASSWORD = 'motorola'
ENCODED_PASSWORD = 'bW90b3JvbGE' # get from login URL from web UI.

def login(modem) :
    '''
    The modem seems to just be in a global "logged in" state once the password
    is sent -- no cookies are set.
    '''
    # the password is encoded with some simple function in JS. It is a
    # symmetric encoding of some form, so the encoding is always the same. This
    # is the encoding of the default password 'motorola'. Note that the ordering
    # of the arguments matters, and so does the trailing '=&' that we tack on
    # to the end of the URL.
    args = [
        ('loginUsername', USERNAME),
        ('loginPassword', ENCODED_PASSWORD)
    ]
    encodedArgs = urllib.urlencode(args)
    url = 'http://%(modem)s/login_auth.html?%(encodedArgs)s=&' % locals()

    # This will respond with a 200 return code with a HTML body claiming that
    # there was a 400 error if login was successful, or an actual 400 error if
    # the login was not successful.
    try :
        urllib2.urlopen(url).read()
    except urllib2.HTTPError, e :
        print >> sys.stderr, "400 error returned from modem. Check the password"
        raise e

def getSession(modem) :
    # the session key is included as a hidden field on the form with the reboot
    # button. We use BeautifulSoup to extract it.
    req = urllib2.Request('http://%(modem)s/MotoSecurity.html' % locals())
    html = urllib2.urlopen(req).read()
    soup = BeautifulSoup(html, "html.parser")
    sessionField = soup.find(attrs={'name' : 'sessionKey'})
    return str(sessionField.attrs['value'])

def reboot(modem, session) :
    # reconstruct the reboot request and send it here to start the reboot.
    argDict = [
        ('MotoUsername', USERNAME),
        ('MotoCurPassword', PASSWORD),
        ('MotoNewUsername', USERNAME),
        ('MotoNewPassword', PASSWORD),
        ('MotoRepPassword', PASSWORD),
        ('MotoSecurityAction', '1'),
        ('sessionKey', session)
    ]
    url = 'http://%(modem)s/goform/MotoSecurity' % locals()
    req = urllib2.Request(url, urllib.urlencode(argDict))
    urllib2.urlopen(req).read()

    # the response from the reboot request instructs us to visit this page, so
    # we do a fetch against it here. Otherwise the modem seems to not reboot.
    urllib2.urlopen('http://%(modem)s/rebootinfo.html' % locals()).read()

def main() :
    login(MODEM_IP)
    session = getSession(MODEM_IP)
    reboot(MODEM_IP, session)

if __name__ == '__main__' :
    main()

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

convert unix script to perl

Hi, I have these lines in a unix script: FILEONE = /<filepath1>/<filename1.txt> FILENEW = /<filepath2>/<filename2.txt> head -5 $FILEONE | sed '1d' > $FILENEW PARAM1 = `cat $FILENEW | awk '{print $2;}' ` echo "Param1 Value: $PARAM1" What's the correct syntax of the above lines if same... (2 Replies)
Discussion started by: gholdbhurg
2 Replies

2. Shell Programming and Scripting

Need to convert ksh script to Perl

Guys I am new to this forum, this may seem like a cheeky request. I have been asked by my manager to convert this ksh script to Perl. I do not have the foggiest about Perl and would appreciate any help on this. Basically this scipt automates a recovery process for EMC Legato Networker. It will... (1 Reply)
Discussion started by: rahimm1
1 Replies

3. Shell Programming and Scripting

Convert .sh script into perl

Good afternoon to you all I really need your help I have the following script developed in .sh and I need to convert it into perl. Can someone help me do it please? Here´s the script: ############################################## ############################################## ... (3 Replies)
Discussion started by: zarahel
3 Replies

4. Shell Programming and Scripting

Help with Simple Perl/Python Script

I have the following problem, which I need done in Perl/ or Python using Unix/linux filters... 1. You have a very large file, named 'ColCheckMe', tab-delmited, that you are asked to process. You are told that each line in 'ColCheckMe' has 7 columns, and that the values in the... (1 Reply)
Discussion started by: Swapnilsagarwal
1 Replies

5. Homework & Coursework Questions

Help with Simple Perl/Python Script

I have the following problem, which I need done in Perl/ or Python using Unix/linux filters... 1. You have a very large file, named 'ColCheckMe', tab-delmited, that you are asked to process. You are told that each line in 'ColCheckMe' has 7 columns, and that the values... (1 Reply)
Discussion started by: Swapnilsagarwal
1 Replies

6. Shell Programming and Scripting

Python/Perl script for auto login

I am loooking for a python/perl script which can login to gmail or any mail accounts and open a browser with the logged in page. I am trying this in a windows environment. I tried many docs available over internet an nothing seems to be working. (4 Replies)
Discussion started by: Tuxidow
4 Replies

7. Shell Programming and Scripting

HELP on Perl array / sorting - trying to convert Korn Shell Script to Perl

Hi all, Not sure if this should be in the programming forum, but I believe it will get more response under the Shell Programming and Scripting FORUM. Am trying to write a customized df script in Perl and need some help with regards to using arrays and file handlers. At the moment am... (3 Replies)
Discussion started by: newbie_01
3 Replies

8. Shell Programming and Scripting

Help with convert awk script into perl

Input file (a list of input file name with *.txt extension): campus.com_icmp_ping_alive.txt data_local_cd_httpd.txt data_local_cd.txt new_local_cd_mysql.txt new_local_cd_nagios_content.txt Desired output file: data local_cd_httpd data local_cd new local_cd_mysql new ... (9 Replies)
Discussion started by: perl_beginner
9 Replies

9. Shell Programming and Scripting

Convert shell script to Perl

Hello,,I have a very small script that contains these lines; and it works perfectly; however I need to use Perl now as I will need to feel variables from a MySQL table into this; to it would be nice to start by converting this first... find / -perm 777 \( -type f -o -type d \) -exec ls -lid {}... (1 Reply)
Discussion started by: gvolpini
1 Replies

10. Shell Programming and Scripting

Python script to convert date to iso format

Hi , This is my 1st program in python never tried any python before. i am trying to write a python script which reads a .tsv file line by line and in each line it should look for mm/dd/yyyy formate and convert it to yyyy-mm-dd formate . can some one provide be some sample code to do that. (2 Replies)
Discussion started by: vikatakavi
2 Replies
nqs2pbs(1B)								PBS							       nqs2pbs(1B)

NAME
nqs2pbs - convert NQS job scripts to PBS SYNOPSIS
nqs2pbs nqs_script [pbs_script] DESCRIPTION
This utility converts a existing NQS job script to work with PBS and NQS. The existing script is copied and PBS directives, #PBS , are inserted prior to each NQS directive #QSUB or #@$ , in the original script. Certain NQS date specification and options are not supported by PBS. A warning message will be displayed indicating the problem and the line of the script on which it occurred. If any unrecognizable NQS directives are encountered, an error message is displayed. The new PBS script will be deleted if any errors occur. OPERANDS
nqs_script Specifies the file name of the NQS script to convert. This file is not changed. pbs_script If specified, it is the name of the new PBS script. If not specified, the new file name is nqs_script.new . NOTES
Converting NQS date specifications to the PBS form may result in a warning message and an incompleted converted date. PBS does not support date specifications of "today", "tomorrow", or the name of the days of the week such as "Monday". If any of these are encountered in a script, the PBS specification will contain only the time portion of the NQS specification, i.e. #PBS -a hhmm[.ss]. It is suggested that you specify the execution time on the qsub command line rather than in the script. Note that PBS will interpret a time specification without a date in the following way: - If the time specified has not yet been reached, the job will become eligible to run at that time today. - If the specified time has already passed when the job is submitted, the job will become eligible to run at that time tomorrow. PBS does not support time zone identifiers. All times are taken as local time. SEE ALSO
qsub(1B) Local nqs2pbs(1B)
All times are GMT -4. The time now is 02:44 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy