sábado, agosto 26, 2006

msn gateway

este blog esta cada vez mas geek pero como no lo lee nadie posteo lo que se me da la gana

escribi esta clase (no terminada) para poder conectarse al messenger mediante el puerto
80 mandando request http (como hace el gaim), osea que si tenes un proxy por el puerto 80 estas hecho, probablemente sea la unica implementacion para proxy en el emesene (la parte de proxy no esta implementada todavia :P).


import httplib
import urllib
import urllib2

#terminar
class Proxy:

def __init__( self , host , port , user , password ):

self.host = str( host )
self.port = port
self.user = str( user )
self.password = str( password )

class HttpMethod:

def __init__( self , host , port , path, proxy = None ):
self.host = str( host )
self.path = str( path )
self.port = port
self.proxy = proxy

self.response = ""
self.data = ""
self.headers = {}
self.headers[ "Accept" ] = "*/*"
self.headers[ "Accept-Language" ] = "en-us"
self.headers[ "Accept-Encoding" ] = "gzip, deflate"
self.headers[ "User-Agent" ] = "MSMSGS"
self.headers[ "Host" ] = "gateway.messenger.hotmail.com"
self.headers[ "Proxy-Connection" ] = "Keep-Alive"
self.headers[ "Connection" ] = "Keep-Alive"
self.headers[ "Pragma" ] = "no-cache"
self.headers[ "Content-Type" ] = "application/x-msn-messenger"
self.headers[ "Content-Length" ] = "18"

self.request = None
self.connection = httplib.HTTPConnection( self.host + ":" + str( self.port ) )

def send( self , message ):
self.headers[ "Content-Length" ] = str( len( message ) )
self.connection.request( "POST" , self.path , message , self.headers )

def recv( self ):
response = self.connection.getresponse()
self.response = response.read()

return self.response

if __name__ == "__main__":
h = HttpMethod( "gateway.messenger.hotmail.com" , 80 , "/gateway/gateway.dll?Action=open&Server=NS&IP=messenger.hotmail.com" )
h.send( "VER 1 MSNP9 CVR0\r\n" )
print h.recv()

6 comentarios:

Blog de Marco dijo...

bien ahiii, te lo estaba por pedir porque ya no iba a soportar mas las desconexiones del gaim en la facu, es mas estaba probando con un enmascaramiento para que el emesene se pudiera conectar

Anónimo dijo...

#terminar


eh, grosisimo!

Anónimo dijo...

you are a genius man.

Anónimo dijo...

tengo una mejor...

if(tekeresconectarelmessengerporelpuerto80) {
conectar.messenger.puerto=80;
}

listo!, solucionado

Marco dijo...

estoy a necessitar conectar por emesene por Socks... como hago? he encontrado esto en la web http://sourceforge.net/project/showfiles.php?group_id=180628
por favor ayude-me

Marco dijo...
Este comentario ha sido eliminado por el autor.

Seguidores

Archivo del Blog