-
-
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*********************************************************************" |
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?
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;