Jabber бот для отправки внешнего IP адреса.

Это простейший Jabber/XMPP бот написанный на языке программирования Python для отправки IP адреса машины на котором он запущен.


Чтобы бот Вам выслал внешний IP адрес, ему нужно написать команду:

ip

Бот Вам вышлет сообщение такого типа:

RU => 199.23.84.114

Зависимости:

python-xmpp

Код:

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

'''ipbot- IP address to jabber bot.      
licence GPL v.3'''

import  xmpp
import urllib2
import ConfigParser

config = ConfigParser.ConfigParser()
config.read('ipbot.conf')

##########################
user= (config.get('account', 'login'))
password=(config.get('account', 'password'))
presence=(config.get('presence','presence'))
##########################

jid=xmpp.protocol.JID(user)
client=xmpp.Client(jid.getDomain())
client.connect()
client.auth(jid.getNode(),password)



################Получаем IP##################
strURL='http://api.wipmania.com/'
f = urllib2.urlopen(urllib2.Request(strURL))
response = f.read()
ipget= response.split("<br>")
f.close()
#############################################


def status(xstatus):
    status=xmpp.Presence(status=xstatus,show=presence,priority='1')
    client.send(msging)

def message(conn,mess):

  global client
  
 
  if ( mess.getBody() == "ip" ):

	client.send(xmpp.Message(mess.getFrom(),ipget[1]+" => "+ipget[0]))#Отсылаем IP

client.RegisterHandler('message',message)

client.sendInitPresence()

while True:

    client.Process(1)

ipbot.conf

[account]
login = bot@jabber
password = password
[presence]
presence = 'chat'

Теги: , ,

Дата: 3 ноября 2010

Автор: ignusius

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

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

  1. ругается на инденты :-( (в client.send)
    при копировании в текстовый файл, похоже, сбивается форматирование?

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

*

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

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

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

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