-
-
Save paalfe/8edd82f780c650ae2b4a to your computer and use it in GitHub Desktop.
#! /usr/bin/python | |
print "\n*********************************************************************" | |
print "Cisco IOU License Generator - Kal 2011, python port of 2006 C version" | |
import os | |
import socket | |
import hashlib | |
import struct | |
# get the host id and host name to calculate the hostkey | |
hostid=os.popen("hostid").read().strip() | |
hostname = socket.gethostname() | |
ioukey=int(hostid,16) | |
for x in hostname: | |
ioukey = ioukey + ord(x) | |
print "hostid=" + hostid +", hostname="+ hostname + ", ioukey=" + hex(ioukey)[2:] | |
# create the license using md5sum | |
iouPad1='\x4B\x58\x21\x81\x56\x7B\x0D\xF3\x21\x43\x9B\x7E\xAC\x1D\xE6\x8A' | |
iouPad2='\x80' + 39*'\0' | |
md5input=iouPad1 + iouPad2 + struct.pack('!L', ioukey) + iouPad1 | |
iouLicense=hashlib.md5(md5input).hexdigest()[:16] | |
# add license info to $HOME/.iourc | |
print "\n*********************************************************************" | |
print "Create the license file $HOME/.iourc with this command:" | |
print " echo -e '[license]\\n" + hostname + " = " + iouLicense + ";'" + " | tee $HOME/.iourc " | |
print "\nThe command adds the following text to $HOME/.iourc:" | |
print "[license]\n" + hostname + " = " + iouLicense + ";" | |
# disable phone home feature | |
print "\n*********************************************************************" | |
print "Disable the phone home feature with this command:" | |
print " grep -q -F '127.0.0.1 xml.cisco.com' /etc/hosts || echo '127.0.0.1 xml.cisco.com' | sudo tee -a /etc/hosts" | |
print "\nThe command adds the following text to /etc/hosts:" | |
print "127.0.0.1 xml.cisco.com" | |
print "\n*********************************************************************" |
this a great video work for me
https://www.youtube.com/watch?v=QLVGxa4jEDI
thanks
I think Python updated python3 libraries and now it's not running.
I'm using Ubuntu 14. I get error:
File "CiscoIOUKeygen.py", line 2
print "*********************************************************************"
^
SyntaxError: Missing parentheses in call to 'print'
I tried to add parentheses to the print lines, but now i get error:
Traceback (most recent call last):
File "CiscoIOUKeygen.py", line 18, in
md5input=iouPad1 + iouPad2 + struct.pack('!L', ioukey) + iouPad1
TypeError: Can't convert 'bytes' object to str implicitly
Any ideas?
I think you need to use python2 and not python3, I encountered this before and someone from a different site said to use the python2.
ubuntu 16.04, worked straight out box, copy-and-paste, thanks for the script.
i have cousing this problem.Please solve this.
gns3@gns3-iouvm:$ cd /opt/gns3/images/iou/$ /opt/gns3/images/iou/$ python3 CiscoIOUKeygen.py
gns3@gns3-iouvm:
File"CiscoKeygen.py",line 2
Print " ******************************************************"
^
syntaxError:Missing parentheses in call to 'print'
In python 3.x print is a function. You must use python 2.X and not 3.x. Or you can change code. Ex print "blablabla" to print("blablabla")
Also you can just change #!/usr/bin/python to #!/usr/bin/python2 and try run
Try this those who are using pyth ver 3..really hats off this man
https://www.ipvanquish.com/2016/09/25/how-to-generate-cisco-iou-licence-on-gns3-vm-with-python-3/
It was not very clear to me but now I understand why there is no windows version of this script.
You need to run it from the shell of your GNSVM and not from your main operating system.
https://gns3.com/api/v2/assets/photo/56a8ef00d4b43d841df7a131/booted%20into%20gns3%20vm.PNG
Here are some simple instructions using GNS3 2.1.3 (Fairly sure its Python 3 and not Python 2)
In the GNS Shell type,
wget http://www.ipvanquish.com/download/CiscoIOUKeygen3f.py
python3 CiscoIOUKeygen3f.py
You should see your license key on the screen, it will look something like...
[license]
gns3vm = 73635fd3b0a13ah0;
Type this into GNS3 Edit - Preferences - IOS on UNIX (The big white box)
Don't forget to end the license with the ; after your license key.
[license]
gns3vm = 73635fd3b0a13ah0;
To make this work do the following on the VM you are running IOU/IOL on.
I use nano - so be sure you have that installed with the following command:
apt-get install nano
Next Move to the directory you are running IOU from:
In EVE-NG it is this --> cd /opt/unetlab/addons/iol/bin
Create the python script:
nano key.py
<Paste the above script in to this file, if using putty just right click to paste.>
press Ctrl-O to save
press Ctrl-X to exit
now run the script:
python2 key.py
you will get some output.
now create your license file:
nano iourc
Paste the two lines in there for the license file, the first line is [license]
press Ctrl-O to save
press Ctrl-X to exit
You may also need to make the iourc file executable:
chmod +x iourc
now paste the line starting with grep in the console.
That should be it and the IOL should start now.
Many thanks for your help.
I'm curious:
Is VMware installation mandatory (even for users whose host/main OS is a Linux Distro)?
Can't we configure our Linux distro in such a way so that both GNS3 and iourc license it uses, work together?
Is there any solution for generate an license file to migrate cisco ip phones enterprise firmware to multiplattform?
I'm getting this error SyntaxError: Missing parentheses in call to 'print' Python version 3.5