#! /usr/bin/python

import pygtk
pygtk.require('2.0')
import gtk

import socket
import fcntl
import struct

# The get_ip_address() method is written by Paul Cannon 
# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/439094
def get_ip_address(ifname):
   s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
   return socket.inet_ntoa(fcntl.ioctl(
      s.fileno(),
      0x8915,  # SIOCGIFADDR
      struct.pack('256s', ifname[:15])
   )[20:24])


class IPDialog:
	def delete_event(self, widget, event, data=None):
		widget.destroy()
		gtk.main_quit()
		return 1
	
	def __init__(self):		
		self.dialog = gtk.Dialog("Your IP")	
		self.dialog.connect("delete_event", self.delete_event)
		self.dialog.set_border_width(2)
		self.dialog.set_size_request(200,80)
		self.dialog.set_position(gtk.WIN_POS_CENTER)
		
		label = gtk.Label("Your IP-address is:")
		self.dialog.vbox.add(label)
		label = gtk.Label(get_ip_address('eth0'))
		self.dialog.vbox.add(label)

		self.dialog.show_all()

IPDialog()
gtk.main()


