Skip to content

Instantly share code, notes, and snippets.

Created May 17, 2015 20:45
Show Gist options
  • Save paalfe/8edd82f780c650ae2b4a to your computer and use it in GitHub Desktop.
Save paalfe/8edd82f780c650ae2b4a to your computer and use it in GitHub Desktop.
Cisco IOU License Generator. Originally found at, I have done a few changes to it. Make the file executable with " chmod +x " and execute it " ./ ".
#! /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
hostname = socket.gethostname()
for x in hostname:
ioukey = ioukey + ord(x)
print "hostid=" + hostid +", hostname="+ hostname + ", ioukey=" + hex(ioukey)[2:]
# create the license using md5sum
iouPad2='\x80' + 39*'\0'
md5input=iouPad1 + iouPad2 + struct.pack('!L', ioukey) + iouPad1
# 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 '' /etc/hosts || echo '' | sudo tee -a /etc/hosts"
print "\nThe command adds the following text to /etc/hosts:"
print ""
print "\n*********************************************************************"
Copy link

I'm getting this error SyntaxError: Missing parentheses in call to 'print' Python version 3.5

Copy link

ghost commented Dec 15, 2015

this a great video work for me

Copy link

dudu99 commented Feb 26, 2016


Copy link

I think Python updated python3 libraries and now it's not running.
I'm using Ubuntu 14. I get error:

File "", 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 "", line 18, in
md5input=iouPad1 + iouPad2 + struct.pack('!L', ioukey) + iouPad1
TypeError: Can't convert 'bytes' object to str implicitly

Any ideas?

Copy link

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.

Copy link

simonfbroad commented Mar 31, 2017

ubuntu 16.04, worked straight out box, copy-and-paste, thanks for the script.

Copy link

i have cousing this problem.Please solve this.

gns3@gns3-iouvm:$ cd /opt/gns3/images/iou/
$ /opt/gns3/images/iou/$ python3
File"",line 2
Print " ******************************************************"

syntaxError:Missing parentheses in call to 'print'

Copy link

biken00r commented Jun 16, 2017

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

Copy link

Try this those who are using pyth ver 3..really hats off this man

Copy link

itlas245 commented Feb 7, 2018

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.

Here are some simple instructions using GNS3 2.1.3 (Fairly sure its Python 3 and not Python 2)

In the GNS Shell type,



You should see your license key on the screen, it will look something like...

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.

gns3vm = 73635fd3b0a13ah0;

Copy link

petecory commented Feb 21, 2018

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:
<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:

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.

Copy link

Many thanks for your help.

Copy link

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?

@simonfbroad @biken00r @bluephoenix71 @DJDumlao @vargasjj

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment