Cisco Support Community
Community Member

Network Programing

Which programing Language is used in IOS?

I want to learn some network programing so which language will be good for the programing for networking technology JAVA, C,C++, Perl?

and what is Tcl?


Re: Network Programing


IOS doesnt use a programming language as such. To configure IOS on a router/switch, most people use the CLI (command line interface) which is command driven (you issue commands, and it does it) or via the web GUI. About the closest I would imagine you would come to doing actual "programming" within IOS, would be the use of the inbuilt TCL interpreter or using regular expressions.

As for what language IOS is programmed in, I believe this is usually a closely guarded secret of Cisco's.

As for network programming in general, you have people that develop the applications that run over networks (e.g. web servers, ftp servers etc and usually in C/C++), or on another train I have heard network programming used in reference to the tools that assist in the day to day functionality of networks (e.g. traffic statistics generation etc). I have noticed that Perl is used for quite alot of these applications.

Cisco have some documentation on the TCL implementation within IOS and its API, which you can find at

Hope this helps, and if so please remember to rate posts.

Hall of Fame Super Blue

Re: Network Programing


Depends in large part on what you are trying to achieve.

Perl & TCL are scripting lanuguages. They lend themselves to rapid development and deployment. Perl has a plethora of modules that you can download and use so for example if you wanted to write a program that logged into all your switches/routers to do something you could use perl's Net::Telnet::Cisco a module specifically for accessing Cisco routers/switches.

You can also find tcl scripts that people have released that do a lot of the programming for you so you can concentrate on your specific task. You can also add Python, another commonly used scripting language, to this list.

C & C++ are compiled lanuguages. They do not lend themselves to such rapid development and deployment and generally speaking the learning curve is a lot steeper. If you are serioulsy considering writing a full blown network application then you might want to look at one of these but it can be a long road.

Java is kind of a halfway house between the 2 but it is probably closer to the compiled languages.

IOS is probably programmed in C/C++ but it doesn't really matter as such as you won't be coding into this.

If your'e primary responsibility is networking and you want to look into programming to automate some fo your tasks then i would say concnetrate on the scripting languages.

If you are looking to become a full time developer of network applications Java/C++ is the way to go.



CreatePlease to create content