hello, csak a listaarchívum kedvéért: HÖLTZL Péter <holtzl.peter@balabit.hu> irta:
import re
class xProxy(PlugProxy):
def config(self):
tmp=re.spit("\.", self.session.server_address.ip_s) ^^^ ez itt nem split?
if !(tmp[0]=="10" and tmp[1]=="99" and tmp[3]=="243"): raise "Hiba"
a megoldas nagyon ronda
szerintem meg működik és ez a lényeg, nem? :-))) Bár a re modul _nagyon_ lassú tud lenni. Esetleg lehetne használni még re és split helyett fordított logikával a match funkciót, az alhálózat címeket pedig egy compiled object-be rakni a compile-lal a re modulból, úgy sokkal gyorsabb a regexpek kezelése, de meg kell nézni teszttel. A match funkcióval azt kell megnézni, hogy a server_address.ip_s-ben megfelel-e a compiled object-ben lévő regexpnek. De a re nélkül is működne ez. Akkor megspórolod a regexp fordítási és hasonlítási idejét. A self.session.server_address.ip_s -t, mivel string típusú utolsó emlékeim szerint, meg pont is van benne, integer nehezen lehetne például, csak belső class-szal - simán tudod splitelni és úgy megtenni a szükséges összehasonlítást. A kimaradt regexp összehasonlítás nagyban javít a sebességen, a regexp gonosz :-) a leglassabb minden közül. Alternatív megoldás 2 (by Attila/LSC): if not self.session.server_address.ip_s.startswith(első címek) and not self.session.server_address.ip_s.endswith (ucsó cím) raise "Hiba" Ezek sem szépek, de megdőlt a perl alatt sokféleképpen megoldod, pythonban pedig az a jó, de nem látod át, itt pedig egyszerű, mert egy modul van csak elmélet :-) üdv, Ago ----------- Deim Ágoston LSC Linux Support Center Kft. e-mail: deim.agoston@lsc.hu Tel/fax:06-1/341-0457