Category : "Python"

Socket Programming in Python

Code a chat application (server and client) using sockets in python

Chat application In our previous article on we learned about the basics of creating a socket server and client in python. In this post we are going to write a very simple chat application in python that is powered by sockets. The chat application we are going to make will be more like a chat room, rather than a peer to peer chat. So this means that multiple users can connect to the chat server [...]

Code a simple telnet client using sockets in python

The telnet client is a simple commandline utility that is used to connect to socket servers and exchange text messages. Here is an example of how to use telnet to connect to google.com and fetch the homepage. $ telnet google.com 80 The above command will connect to google.com on port 80. $ telnet google.com 80 Trying 74.125.236.69… Connected to google.com. Escape character is ‘^]’. Now that it is connected, the telnet command can take user [...]

Python program to fetch domain whois data using sockets

Whois The whois information of a domain name provides various details like registrar, owner, registration date, expiry date etc. The whois information is provided by the corresponding whois servers of the registrars. The first step is to contact whois.iana.org which provides the actual whois server of a domain name. Next the particular whois server is contacted which provides the full whois data of the domain. Implementation is quite simple and python makes it even simpler. [...]

Programming udp sockets in python

UDP sockets UDP or user datagram protocol is an alternative protocol to its more common counterpart TCP. UDP like TCP is a protocol for packet transfer from 1 host to another, but has some important differences. UDP is a connectionless and non-stream oriented protocol. It means a UDP server just catches incoming packets from any and many hosts without establishing a reliable pipe kind of connection. In this article we are going to see how [...]

Raw socket programming in python (Linux)

Raw sockets allow a program or application to provide custom headers for the specific protocol(tcp ip) which are otherwise provided by the kernel/os network stack. In more simple terms its for adding custom headers instead of headers provided by the underlying operating system. Raw socket support is available natively in the socket api in linux. This is different from windows where it is absent (it became available in windows 2000/xp/xp sp1 but was removed later). [...]

Syn flood program in python using raw sockets (Linux)

Syn flood and raw sockets A syn flood program sends out large number of tcp syn packets to a remote host on a particular port number. Syn packets are intended to initiate a tcp connection. However if a large number of syn packets are send without any purpose, then then it would consume a lot of resources like memory on the remote system. This concept is used in denial of service (dos) attacks. It is [...]

Code a packet sniffer in python with pcapy extension

Pcapy In the previous articles we coded packet sniffers in python using raw sockets. Now lets use the libpcap library for the same. Libpcap is the packet capture library for linux and has wrappers for most languages. In python there are multiple libpcap wrappers like pcapy, pypcap etc. In this article we shall use the pcapy python module. Pcapy is a Python extension module that interfaces with the libpcap packet capture library. Pcapy enables python [...]

Receive full data with the recv socket function in python

In an earlier article we saw how to send and receive data in python using sockets. Lets take a quick example : The output of the above code might be something like this : The problem ? The output is not complete. Some data has been left out. Communication like the above takes places through the TCP/IP protocol. In this protocol the data transfer takes place in chunks. Lets say a webpage is 500KB in [...]

Python socket programming tutorial

Tcp/IP socket programming in python This is a quick guide/tutorial to learning socket programming in python. Socket programming python is very similar to C. To summarise the basics, sockets are the fundamental “things” behind any kind of network communications done by your computer. For example when you type www.google.com in your web browser, it opens a socket and connects to google.com to fetch the page and show it to you. Same with any chat client [...]

Code a network packet sniffer in python for Linux

Basic Sniffer Sniffers are programs that can capture/sniff/detect network traffic packet by packet and analyse them for various reasons. Commonly used in the field of network security. Wireshark is a very common packet sniffer/protocol analyzer. Packet sniffers can be written in python too. In this article we are going to write a few very simple sniffers in python for the linux platform. Linux because, although python is a portable, the programs wont run or give [...]