Re: [Python-es] matriz de matrices irregulares en longitud

2012-04-27 Por tema Jesús Curbelo Rodríguez

Hola a todos,

Hace tiempo escribí esto, igual te sirve aunque falta pulirlo.

Saludos.

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


class Vector(list):
'''Vector de tamaño fijo con/sin comprobación de tipo'''

def __new__(cls, *args, **kwargs):
# Internamente los elementos del vector se almacenan en una lista.
return list.__new__(cls, *args, **kwargs)

def __init__(self, length, default_value=None, initial_values=None, 
typed=True):

# El vector tendrá el tamaño indicado por length.
# Los elementos del vector se inicializan con los elementos de 
initial_values.
# Si len(initial_values)  length el vector se rellena con 
default_value

# hasta alcanzar la longitud requerida.
# Si len(initial_values)  length se descartan los elementos de 
initial_values

# con indice mayor a length.
# Si todos los elementos de initial_values y default_value 
tienen el mismo
# tipo el vector será de dicho tipo y solo podra almacenar 
valores de
# ese tipo. En caso contrario el vector no tendra tipo y podra 
almacenar

# elementos de cualquier tipo.
# Si typed == False no se tendra en cuenta el tipo de los 
elementos.


try:
same_type = True
l = len(initial_values)
for i in range(length):
if i  l:
self.append(initial_values[i])
same_type = same_type and (type(default_value) == 
type(initial_values[i]))

else:
self.append(default_value)
except:
self.extend([default_value]* length)
finally:
self.__length = length
self.__type = type(default_value) if (same_type and typed) 
else type(None)



def __setitem__(self, index, value):
# Comprobamos el tipo antes de insertar un elemento.
if self.__type == type(value) or self.__type == type(None):
super(Vector, self).__setitem__(index, value)
else:
# Elemento de tipo incorrecto, no se inserta.
raise ValueError

def __setslice__(self, i, j, sequence):
# Impedimos este método para que altere el tamaño del vector.
# TODO: hacer lo mismo con el resto de métodos de la clase list que
# pueden cambiar el tamaño del vector.
raise ValueError # FIXME: poner la excepción correcta.

def __count__(self):
return self.__length

@property
def type(self):
return self.__type

@property
def length(self):
return self.__length


class Matrix(Vector):
'''Matriz bidimensional de tamaño fijo con/sin comprobación de tipo'''

def __init__(self, cols, rows, default_value=None, 
initial_values=None, typed=True):

# Indicamos el número de columnas y filas de la matriz.
self.__cols = cols
self.__rows = rows
super(Matrix, self).__init__(cols * rows, default_value, 
initial_values, typed)


def __setitem__(self, index, value):
# FIXME: interceptar índices no válidos.
col, row = index
index = self.__cols * row + col
super(Matrix, self).__setitem__(index, value)

def __getitem__(self, index):
# FIXME: interceptar índices no válidos.
col, row = index
index = self.__cols * row + col
return super(Matrix, self).__getitem__(index)

def __repr__(self):
result = 
for i in range(0, self.length, self.cols):
result += [%s] % , .join([str(s) for s in self[i: i + 
self.cols]])

return [%s] % result

def __str__(self):
result = 
for i in range(0, self.length, self.cols):
result += %s\n %   .join([str(s) for s in self[i: i + 
self.cols]])

return result

@property
def cols(self):
return self.__cols

@property
def rows(self):
return self.__rows

def row(self, index):
'''Devuelve la fila con índice index'''
# FIXME: comprobar limites
i = index * self.__cols
return self[i:i + self.__cols]

def col(self, index):
'''Devuelve la columna con índice index'''
# FIXME: comprobar limites
return [self[index, i] for i in range(self.__cols)]

def submatrix(self, ix, iy, jx, jy):
'''Devuleve una submatrix de la matrix'''
m = []
for y in range(iy, jy + 1):
k = y * self.__cols
m.append(self[k + ix:k + jx + 1])
# OJO!! el valor devuelto es un lista y no de la clase matrix
return m

def list(self):
'''Devuleve los elementos de la matrix como una lista'''
return list(self)

def sublist(self, ix, iy, jx, jy):
'''Devuleve una submatrix de la matrix en forma de lista'''
l = []
for y in range(iy, jy + 1):
k = y * self.__cols
l.extend(self[k + ix:k + jx + 1])
# OJO!! el valor 

[Python-es] Analizar trafico

2012-04-27 Por tema César García
   Saludos a todos en la lista:

  Tengo una lista de direcciones IP como la siguiente:

[['10.0.0.1', '172.16.0.2'], ['10.0.0.2', '172.16.0.4'], ['10.0.2.1',
'172.16.0.6'], ['10.0.0.1', '172.16.0.2']]

pero con muchas mas direcciones, cada lista representa fuente y destino de
una conexión tc, esta información fue extraída de un log, quisiera
solicitarles cordialmente orientación, ya que quisiera analizar esta
información en busqueda de algun tipo de actividad sospechosa. Encontré el
proyecto NetGrok[1] que hace lo que necesito pero con archivos pcap, y la
información que tengo es en texto.

Me pregunto si sería posible hacer un gráfico esta información para
visualizar esto de forma más fácil, claro esta que cualquier otra
sugerencia de la lista esta más que bienvenida

[1] http://www.cs.umd.edu/projects/netgrok/
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Analizar trafico

2012-04-27 Por tema G V
qué considerarias sospechoso? muchas conexiones a un mismo sitio?
desde un mismo sitio? una secuencia?

2012/4/27 César García cel...@gmail.com:
    Saludos a todos en la lista:

   Tengo una lista de direcciones IP como la siguiente:

 [['10.0.0.1', '172.16.0.2'], ['10.0.0.2', '172.16.0.4'], ['10.0.2.1',
 '172.16.0.6'], ['10.0.0.1', '172.16.0.2']]

 pero con muchas mas direcciones, cada lista representa fuente y destino de
 una conexión tc, esta información fue extraída de un log, quisiera
 solicitarles cordialmente orientación, ya que quisiera analizar esta
 información en busqueda de algun tipo de actividad sospechosa. Encontré el
 proyecto NetGrok[1] que hace lo que necesito pero con archivos pcap, y la
 información que tengo es en texto.

 Me pregunto si sería posible hacer un gráfico esta información para
 visualizar esto de forma más fácil, claro esta que cualquier otra sugerencia
 de la lista esta más que bienvenida

 [1] http://www.cs.umd.edu/projects/netgrok/

 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/

___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Analizar trafico

2012-04-27 Por tema Jeyson Henao
Hola,

Las capturas de red en esta caso .pcap son precisamente para esto, que con
el uso de una herramienta (wireshark) puedes determinar mediante
tu análisis y el apoyo en la herramientas las actividades realizadas por
dichas maquina. O enfocarte en una herramienta que te parseado de la info
que tienes en ese archivo.


Saludos...

2012/4/27 G V nada...@gmail.com

 qué considerarias sospechoso? muchas conexiones a un mismo sitio?
 desde un mismo sitio? una secuencia?

 2012/4/27 César García cel...@gmail.com:
 Saludos a todos en la lista:
 
Tengo una lista de direcciones IP como la siguiente:
 
  [['10.0.0.1', '172.16.0.2'], ['10.0.0.2', '172.16.0.4'], ['10.0.2.1',
  '172.16.0.6'], ['10.0.0.1', '172.16.0.2']]
 
  pero con muchas mas direcciones, cada lista representa fuente y destino
 de
  una conexión tc, esta información fue extraída de un log, quisiera
  solicitarles cordialmente orientación, ya que quisiera analizar esta
  información en busqueda de algun tipo de actividad sospechosa. Encontré
 el
  proyecto NetGrok[1] que hace lo que necesito pero con archivos pcap, y la
  información que tengo es en texto.
 
  Me pregunto si sería posible hacer un gráfico esta información para
  visualizar esto de forma más fácil, claro esta que cualquier otra
 sugerencia
  de la lista esta más que bienvenida
 
  [1] http://www.cs.umd.edu/projects/netgrok/
 
  ___
  Python-es mailing list
  Python-es@python.org
  http://mail.python.org/mailman/listinfo/python-es
  FAQ: http://python-es-faq.wikidot.com/
 
 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/

___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Analizar trafico

2012-04-27 Por tema César García
G V,
en este caso en específico considero sospechoso muchas conexiones desde y
hacia un sitio.

Jeyson,

 en este caso en particular no tengo el pcap, el cual como acertadamente
mencionas me aligeraría mucha la carga.




El 27 de abril de 2012 11:22, Jeyson Henao jahena...@gmail.com escribió:

 Hola,

 Las capturas de red en esta caso .pcap son precisamente para esto, que con
 el uso de una herramienta (wireshark) puedes determinar mediante
 tu análisis y el apoyo en la herramientas las actividades realizadas por
 dichas maquina. O enfocarte en una herramienta que te parseado de la info
 que tienes en ese archivo.


 Saludos...


 2012/4/27 G V nada...@gmail.com

 qué considerarias sospechoso? muchas conexiones a un mismo sitio?
 desde un mismo sitio? una secuencia?

 2012/4/27 César García cel...@gmail.com:
 Saludos a todos en la lista:
 
Tengo una lista de direcciones IP como la siguiente:
 
  [['10.0.0.1', '172.16.0.2'], ['10.0.0.2', '172.16.0.4'], ['10.0.2.1',
  '172.16.0.6'], ['10.0.0.1', '172.16.0.2']]
 
  pero con muchas mas direcciones, cada lista representa fuente y destino
 de
  una conexión tc, esta información fue extraída de un log, quisiera
  solicitarles cordialmente orientación, ya que quisiera analizar esta
  información en busqueda de algun tipo de actividad sospechosa. Encontré
 el
  proyecto NetGrok[1] que hace lo que necesito pero con archivos pcap, y
 la
  información que tengo es en texto.
 
  Me pregunto si sería posible hacer un gráfico esta información para
  visualizar esto de forma más fácil, claro esta que cualquier otra
 sugerencia
  de la lista esta más que bienvenida
 
  [1] http://www.cs.umd.edu/projects/netgrok/
 
  ___
  Python-es mailing list
  Python-es@python.org
  http://mail.python.org/mailman/listinfo/python-es
  FAQ: http://python-es-faq.wikidot.com/
 
 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/



 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/


___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Analizar trafico

2012-04-27 Por tema Carlos Herrera Polo
Coincido con Cesar.
Seria interesante alguna herramiente que pueda tomar las variables que
mencionas y mostrar el trafico graficamente.
Mi caso imagino es similar al tuyo Cesar, tengo un firewall Juniper
que envia por syslog el trafico de red, con un script en python que
hice convierto esos registros en valores que inserto en una base de
datos Mysql ya con los resumenes de trafico x usuario, pero eso es
todo y no ayuda demasiado...
Si se pudiera utilizar algo para volcar esa informacion a graficas
seria genial



El 27/04/12, César García cel...@gmail.com escribió:
 G V,
 en este caso en específico considero sospechoso muchas conexiones desde y
 hacia un sitio.

 Jeyson,

  en este caso en particular no tengo el pcap, el cual como acertadamente
 mencionas me aligeraría mucha la carga.




 El 27 de abril de 2012 11:22, Jeyson Henao jahena...@gmail.com escribió:

 Hola,

 Las capturas de red en esta caso .pcap son precisamente para esto, que
 con
 el uso de una herramienta (wireshark) puedes determinar mediante
 tu análisis y el apoyo en la herramientas las actividades realizadas por
 dichas maquina. O enfocarte en una herramienta que te parseado de la info
 que tienes en ese archivo.


 Saludos...


 2012/4/27 G V nada...@gmail.com

 qué considerarias sospechoso? muchas conexiones a un mismo sitio?
 desde un mismo sitio? una secuencia?

 2012/4/27 César García cel...@gmail.com:
 Saludos a todos en la lista:
 
Tengo una lista de direcciones IP como la siguiente:
 
  [['10.0.0.1', '172.16.0.2'], ['10.0.0.2', '172.16.0.4'], ['10.0.2.1',
  '172.16.0.6'], ['10.0.0.1', '172.16.0.2']]
 
  pero con muchas mas direcciones, cada lista representa fuente y
  destino
 de
  una conexión tc, esta información fue extraída de un log, quisiera
  solicitarles cordialmente orientación, ya que quisiera analizar esta
  información en busqueda de algun tipo de actividad sospechosa.
  Encontré
 el
  proyecto NetGrok[1] que hace lo que necesito pero con archivos pcap, y
 la
  información que tengo es en texto.
 
  Me pregunto si sería posible hacer un gráfico esta información para
  visualizar esto de forma más fácil, claro esta que cualquier otra
 sugerencia
  de la lista esta más que bienvenida
 
  [1] http://www.cs.umd.edu/projects/netgrok/
 
  ___
  Python-es mailing list
  Python-es@python.org
  http://mail.python.org/mailman/listinfo/python-es
  FAQ: http://python-es-faq.wikidot.com/
 
 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/



 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/




-- 
Enviado desde mi dispositivo móvil
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Analizar trafico

2012-04-27 Por tema #Mike -
El día 27 de abril de 2012 15:14, Carlos Herrera Polo
carlos.herrerap...@gmail.com escribió:
 Coincido con Cesar.
 Seria interesante alguna herramiente que pueda tomar las variables que
 mencionas y mostrar el trafico graficamente.
 Mi caso imagino es similar al tuyo Cesar, tengo un firewall Juniper
 que envia por syslog el trafico de red, con un script en python que
 hice convierto esos registros en valores que inserto en una base de
 datos Mysql ya con los resumenes de trafico x usuario, pero eso es
 todo y no ayuda demasiado...
 Si se pudiera utilizar algo para volcar esa informacion a graficas
 seria genial

Bueno, graficar el tráfico ni idea, pero para armar el grafo puedes
utilizar digraph[1]; y puedes localizar a donde pertenecen a través de
un whois o utilizar la información de RIR[2].

[1] http://networkx.lanl.gov/reference/classes.digraph.html
[2] 
http://www-public.it-sudparis.eu/~maigron/RIR_Stats/RIR_Delegations/LACNIC/IPv4-ByNb.html




 El 27/04/12, César García cel...@gmail.com escribió:
 G V,
 en este caso en específico considero sospechoso muchas conexiones desde y
 hacia un sitio.

 Jeyson,

  en este caso en particular no tengo el pcap, el cual como acertadamente
 mencionas me aligeraría mucha la carga.




 El 27 de abril de 2012 11:22, Jeyson Henao jahena...@gmail.com escribió:

 Hola,

 Las capturas de red en esta caso .pcap son precisamente para esto, que
 con
 el uso de una herramienta (wireshark) puedes determinar mediante
 tu análisis y el apoyo en la herramientas las actividades realizadas por
 dichas maquina. O enfocarte en una herramienta que te parseado de la info
 que tienes en ese archivo.


 Saludos...


 2012/4/27 G V nada...@gmail.com

 qué considerarias sospechoso? muchas conexiones a un mismo sitio?
 desde un mismo sitio? una secuencia?

 2012/4/27 César García cel...@gmail.com:
     Saludos a todos en la lista:
 
        Tengo una lista de direcciones IP como la siguiente:
 
  [['10.0.0.1', '172.16.0.2'], ['10.0.0.2', '172.16.0.4'], ['10.0.2.1',
  '172.16.0.6'], ['10.0.0.1', '172.16.0.2']]
 
  pero con muchas mas direcciones, cada lista representa fuente y
  destino
 de
  una conexión tc, esta información fue extraída de un log, quisiera
  solicitarles cordialmente orientación, ya que quisiera analizar esta
  información en busqueda de algun tipo de actividad sospechosa.
  Encontré
 el
  proyecto NetGrok[1] que hace lo que necesito pero con archivos pcap, y
 la
  información que tengo es en texto.
 
  Me pregunto si sería posible hacer un gráfico esta información para
  visualizar esto de forma más fácil, claro esta que cualquier otra
 sugerencia
  de la lista esta más que bienvenida
 
  [1] http://www.cs.umd.edu/projects/netgrok/
 
  ___
  Python-es mailing list
  Python-es@python.org
  http://mail.python.org/mailman/listinfo/python-es
  FAQ: http://python-es-faq.wikidot.com/
 
 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/



 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/




 --
 Enviado desde mi dispositivo móvil
 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/



-- 
Luis M. Ibarra
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Analizar trafico

2012-04-27 Por tema César García
Acabo de encontrar esto, no es python, pero podría ayudar a solucionar el
problema, talvez se podría automatizar con las librerias para graphviz en
python.

El 27 de abril de 2012 14:27, #Mike - michael.iba...@gmail.com escribió:

 El día 27 de abril de 2012 15:14, Carlos Herrera Polo
 carlos.herrerap...@gmail.com escribió:
  Coincido con Cesar.
  Seria interesante alguna herramiente que pueda tomar las variables que
  mencionas y mostrar el trafico graficamente.
  Mi caso imagino es similar al tuyo Cesar, tengo un firewall Juniper
  que envia por syslog el trafico de red, con un script en python que
  hice convierto esos registros en valores que inserto en una base de
  datos Mysql ya con los resumenes de trafico x usuario, pero eso es
  todo y no ayuda demasiado...
  Si se pudiera utilizar algo para volcar esa informacion a graficas
  seria genial

 Bueno, graficar el tráfico ni idea, pero para armar el grafo puedes
 utilizar digraph[1]; y puedes localizar a donde pertenecen a través de
 un whois o utilizar la información de RIR[2].

 [1] http://networkx.lanl.gov/reference/classes.digraph.html
 [2]
 http://www-public.it-sudparis.eu/~maigron/RIR_Stats/RIR_Delegations/LACNIC/IPv4-ByNb.html

 
 
 
  El 27/04/12, César García cel...@gmail.com escribió:
  G V,
  en este caso en específico considero sospechoso muchas conexiones desde
 y
  hacia un sitio.
 
  Jeyson,
 
   en este caso en particular no tengo el pcap, el cual como acertadamente
  mencionas me aligeraría mucha la carga.
 
 
 
 
  El 27 de abril de 2012 11:22, Jeyson Henao jahena...@gmail.com
 escribió:
 
  Hola,
 
  Las capturas de red en esta caso .pcap son precisamente para esto, que
  con
  el uso de una herramienta (wireshark) puedes determinar mediante
  tu análisis y el apoyo en la herramientas las actividades realizadas
 por
  dichas maquina. O enfocarte en una herramienta que te parseado de la
 info
  que tienes en ese archivo.
 
 
  Saludos...
 
 
  2012/4/27 G V nada...@gmail.com
 
  qué considerarias sospechoso? muchas conexiones a un mismo sitio?
  desde un mismo sitio? una secuencia?
 
  2012/4/27 César García cel...@gmail.com:
  Saludos a todos en la lista:
  
 Tengo una lista de direcciones IP como la siguiente:
  
   [['10.0.0.1', '172.16.0.2'], ['10.0.0.2', '172.16.0.4'],
 ['10.0.2.1',
   '172.16.0.6'], ['10.0.0.1', '172.16.0.2']]
  
   pero con muchas mas direcciones, cada lista representa fuente y
   destino
  de
   una conexión tc, esta información fue extraída de un log, quisiera
   solicitarles cordialmente orientación, ya que quisiera analizar esta
   información en busqueda de algun tipo de actividad sospechosa.
   Encontré
  el
   proyecto NetGrok[1] que hace lo que necesito pero con archivos
 pcap, y
  la
   información que tengo es en texto.
  
   Me pregunto si sería posible hacer un gráfico esta información para
   visualizar esto de forma más fácil, claro esta que cualquier otra
  sugerencia
   de la lista esta más que bienvenida
  
   [1] http://www.cs.umd.edu/projects/netgrok/
  
   ___
   Python-es mailing list
   Python-es@python.org
   http://mail.python.org/mailman/listinfo/python-es
   FAQ: http://python-es-faq.wikidot.com/
  
  ___
  Python-es mailing list
  Python-es@python.org
  http://mail.python.org/mailman/listinfo/python-es
  FAQ: http://python-es-faq.wikidot.com/
 
 
 
  ___
  Python-es mailing list
  Python-es@python.org
  http://mail.python.org/mailman/listinfo/python-es
  FAQ: http://python-es-faq.wikidot.com/
 
 
 
 
  --
  Enviado desde mi dispositivo móvil
  ___
  Python-es mailing list
  Python-es@python.org
  http://mail.python.org/mailman/listinfo/python-es
  FAQ: http://python-es-faq.wikidot.com/



 --
 Luis M. Ibarra
 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/

___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Analizar trafico

2012-04-27 Por tema Daπid
2012/4/27 #Mike - michael.iba...@gmail.com:
 para armar el grafo puedes utilizar digraph[1]

Networkx permite hacer gráficos de las redes. Algunos ejemplos:

http://networkx.lanl.gov/examples/drawing/weighted_graph.html
http://networkx.lanl.gov/examples/drawing/random_geometric_graph.html

Un aviso sobre el tamaño de la red: la clave en estos gráficos está en
el cálculo de la modularidad de la red, para colocar los nodos muy
interconectados cerca. Networkx tiene integrado el algoritmo espectral
de Newman (draw_spectral), que funciona bien en redes no muy grandes.
Del artículo de Newman:

For the largest of the networks studied here, [...] which has 27,000
vertices, the algorithm takes  20 min to run on a standard personal
computer (circa 2006).

Blondel et al. tienen otro algoritmo más rápido, que en mi máquina
(similar), tarda 27 segundos.

http://perso.crans.org/aynaud/communities/



David.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/