Запуск программы в зависимости от IP-адреса.

Возникла задача, запускать разные программы в зависимости от IP-адреса компьютера.  Параметры запуска она будет парсить из конфигурационного файла. Я подумал и решил, что всех быстрее реализацию проще написать на python и я не ошибся :) На  всё ушло пять минут моего драгоценного времени :D

terst.py

#/usr/bin/env python
#-*-coding:utf-8-*-

__licence__="GNU GPL v3+ "

'''
Этот скрипт парсит terninal.cfg и запускает различные 
сценарии из этого конфигурационного файла.
'''
import os
import ConfigParser
import socket
import fcntl
import struct

def getIP(ifname='eth0'):#По умолчанию интерфейс eth0
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    ipaddr = socket.inet_ntoa(fcntl.ioctl(
        s.fileno(),
        0x8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])
    return ipaddr

config = ConfigParser.ConfigParser()
config.read('terminal.cfg')

#command присваивает значение cmd из заголовка типа:
#[*.*.*.*]<-- вашего IP-адреса на интерфейсе. 
command=(config.get(getIP(), 'cmd'))
os.system(command)

terminal.cfg

[192.168.1.1]
cmd=xterm
[192.168.1.2]
cmd=emacs --background-color black

Теги: , ,

Дата: 17 июня 2011

Автор: Аноним

Комментарии: 0

Оставить комментарий

*

Комментарий:

Ваш e-mail не будет опубликован.
Обязательные поля помечены *

Разрешенные HTML теги:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>