Python Forum
something going wrong.. code is not working
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
something going wrong.. code is not working
#1
#!/usr/bin/python
from easysnmp import Session
# load easysnmp module
community ='public'
#Community for the device
oid ='SNMPv2-MIB::sysDescr.0'
#sysDescr OID
sr_no = 0
with open('DSLAMIP.txt') as ipfile:
    line = ipfile.readlines()
#    print line
    for line in ipfile:
        try:
            session = Session(hostname=line, community=community, version=2)
            snmp_get = session.get(oid)
            result = snmp_get.value.encode('ascii')
            if 'IES1248-51' in result:
                model = 'ZyXEL'
            elif 'ECI' in result:
                model = 'ECI'
            elif 'IP' in result:
                model = 'UT'
            sr_no += 1
            print sr_no+" "+line+ " " +model
        except snmp_exceptions as e:
            print('Connection timed out ', ipfile['line'], e)
would like to print Sr_no IP address Model, but this code is not working
Reply
#2
What exactly does not working mean?
Need details like:
Inputs,
Outputs
Error messages
Expected output
Reply
#3
I need to send one ip address at a time from DSLAMIP.txt to check device model, I am able to print line post opening file, however ips are not passed to session to check model type.
Python is not showing any error or output.

thanks
Reply
#4
What do you see when you remove comment from the print statement
Does the ip statement look ok?

And (on another subject), why are you using antique version of python?
Reply
#5
On line#10 you read the entire txt file in a variable called line. This is actually a list of lines in the file. At that point you are at the end of the file.
Next you want to iterate over the file ipfile line by line, however you are already at the end of the file, thus there is nothing left to iterate over.
To solve the problem just remove line#10 of your code. then you will iterate over the file line by line.
Reply
#6
Thanks Buran,
Changes in code as below

#!/usr/bin/python
from easysnmp import Session
# load easysnmp module
community ='public'
#Community for the device
oid ='SNMPv2-MIB::sysDescr.0'
#sysDescr OID
sr_no = 0
with open('DSLAMIP.txt') as ipfile:
#    line = ipfile.readlines()
#    print line
    for line in ipfile:
#        print line
        try:
            session = Session(hostname=line, community=community, version=2)
            snmp_get = session.get(oid)
            result = snmp_get.value.encode('ascii')
            if 'IES1248-51' in result:
                model = 'ZyXEL'
            elif 'ECI' in result:
                model = 'ECI'
            elif 'IP' in result:
                model = 'UT'
            sr_no += 1
            print sr_no+" "+line+ " " +model
        except:
            print('Connection timed out') 
easysnmp session is not working,
Output is:- Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out

whereas :- i am able to do this manually
[root@localhost scripts]# snmpwalk -v2c -c public 10.113.1.1 SNMPv2-MIB::sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: ECI telecom HiFOCuS broadband access system
Reply
#7
Obviously I'm not able to try, but in order to debug I would remove the try/except thus it will show what the actual error is. i.e. Connection time out is something you print, but because you have all-catching except it masks what the actual error is - i.e. it could be simple syntax error for example. Using all-catching except is generally considered bad practice and only acceptable if you actually print what the error description is
also line will have '\n' at the end, so you may need to strip this before supply line as argument hostname
Reply
#8
Hi Buran,

I am able to print Device model now.
changes in code is as below
#!/usr/bin/python
from easysnmp import Session
# load easysnmp module
community ='public'
#Community for the device
oid ='SNMPv2-MIB::sysDescr.0'
#sysDescr OID
sr_no = 0
with open('DSLAMIP.txt') as ipfile:
#    line = ipfile.readlines()
#    print line
    for line in ipfile:
#        print line
        try:
            session = Session(hostname=line, community=community, version=2)
            snmp_get = session.get(oid)
            result = snmp_get.value.encode('ascii')
            if 'IES1248-51' in result:
                model = 'ZyXEL'
            elif 'ECI' in result:
                model = 'ECI'
            elif 'IP' in result:
                model = 'UT'
            sr_no += 1
            print (str(sr_no)+' '+str(line)+' '+model)
        except:
            print(str(sr_no)+' ' +str(line)+' ' +'Connection timed out')
But output is printing like 1469 10.16.1.59
UT
model on new line where as i want this like 1469 10.16.1.59 UT --- on same line
Reply
#9
as I said line will have new lien - '\n' at the end and you need to strip it.

#!/usr/bin/python

# load easysnmp module
from easysnmp import Session
#Community for the device
community ='public'
#sysDescr OID
oid ='SNMPv2-MIB::sysDescr.0'
with open('DSLAMIP.txt') as ipfile:
    for sr_no, line in enumerate(ipfile, start=1):
        ip = line.strip()
        try:
            session = Session(hostname=ip, community=community, version=2)
            snmp_get = session.get(oid)
            result = snmp_get.value.encode('ascii')
            if 'IES1248-51' in result:
                model = 'ZyXEL'
            elif 'ECI' in result:
                model = 'ECI'
            elif 'IP' in result:
                model = 'UT'
            print('{} {} {}'.format(sr_no, ip, model))
        except Exception as excp:
            print('Something went wrong!')
            print(excp)
Reply
#10
Thanks, Worked...
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  I have a code which is very simple but still I cannot detect what's wrong with it max22 1 440 Nov-07-2023, 04:32 PM
Last Post: snippsat
  New to Python - Not sure why this code isn't working - Any help appreciated TheGreatNinx 4 909 Jul-22-2023, 10:21 PM
Last Post: Pedroski55
  code not working when executed from flask app ThomasDC 1 836 Jul-18-2023, 07:16 AM
Last Post: ThomasDC
  Something wrong with my code FabianPruitt 5 787 Jul-03-2023, 10:55 PM
Last Post: Pedroski55
  Compiles Python code with no error but giving out no output - what's wrong with it? pythonflea 6 1,469 Mar-27-2023, 07:38 AM
Last Post: buran
  Video recording with Raspberry Pi - What´s wrong with my python code? Montezuma1502 3 1,180 Feb-24-2023, 06:14 PM
Last Post: deanhystad
  Why doesn't this code work? What is wrong with path? Melcu54 7 1,681 Jan-29-2023, 06:24 PM
Last Post: Melcu54
  I am new to python and Could someone please explain how this below code is working? kartheekdas 2 974 Dec-19-2022, 05:24 PM
Last Post: kartheekdas
  Am I wrong or is Udemy wrong? String Slicing! Mavoz 3 2,387 Nov-05-2022, 11:33 AM
Last Post: Mavoz
Exclamation My code is not working as I expected and I don't know why! Marinho 4 1,031 Oct-13-2022, 08:09 PM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020