Запуск программы в зависимости от 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