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