[python] работа с scapy и вообще с питоном

Тема в разделе "Perl, Python, Ruby", создана пользователем KillDead, 3 май 2012.

  1. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    Здравствуйте. Нужно создать программу с отображением пакетов при разных соединениях. Идеально подошёл модуль scapy , но к сожалению опыта с питоном совершенно нет, сразу извиняюсь за нубские вопросы.

    установил модуль

    и наверное установил 5 других либ. в питоне они появились, но при вызове help('pywin32') говорит
    no Python documentation found for 'pywin32'

    Пытаюсь в своей ide написать
    Код:
    import scapy
    s =IP()
    импортирует но, на второй строчке стопорится
    Код:
    D:\python\p25\python.exe D:/python/pq/untitled/socket
    Traceback (most recent call last):
      File "D:/python/pq/untitled/socket", line 10, in <module>
        s =IP()
    NameError: name 'IP' is not defined
     
    Process finished with exit code 1
    
    Скорее всего чтото не то делаю.

    Система windows7. Вопросы следующие-
    1- в чём может быть дело и что нужно сделать?)
    2- если я скомпилирую питон в ехе с этой scapy либой, на другом компе он будет работать без проблем?
    3- есть аналоги в делфи\java ?

    всем спасибо
     
  2. chibit

    chibit Life sucks.

    Регистр.:
    4 дек 2007
    Сообщения:
    420
    Симпатии:
    285
    Нужно scapy.IP(). Почитай хотя бы минимальную инфу про модули в питоне.
     
  3. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    пробовал. и Пробовал так же from scapy import * не помогло
     
  4. chibit

    chibit Life sucks.

    Регистр.:
    4 дек 2007
    Сообщения:
    420
    Симпатии:
    285
    Эксепшена не было типа:
    Traceback (most recent call last:(
    File "<stdin>", line 1, in <module>
    ImportError: No module named scapy
    ?

    Попробуй help('scapy')
     
  5. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    нема, вот попробовал переустановить питон и модули dnet/pcap/pyreadline/pywin

    Код:
    help('scapy')
    import scapy
     
    s = scapy.IP() 
    и получил
    Код:
    NAME
        scapy - Scapy: create, send, sniff, dissect and manipulate network packets.
     
    FILE
        d:\python\p25\lib\site-packages\scapy-2.2.0-py2.5.egg\scapy\__init__.py
     
    DESCRIPTION
        Usable either from an interactive console or as a Python library.
        http://www.secdev.org/projects/scapy
     
    PACKAGE CONTENTS
        all
        ansmachine
        arch (package)
        as_resolvers
        asn1 (package)
        asn1fields
        asn1packet
        automaton
        autorun
        base_classes
        config
        crypto (package)
        dadict
        data
        error
        fields
        layers (package)
        main
        modules (package)
        packet
        plist
        pton_ntop
        route
        route6
        sendrecv
        supersocket
        themes
        tools (package)
        utils
        utils6
        volatile
     
     
    Traceback (most recent call last):
      File "D:/python/pq/untitled/socket", line 33, in <module>
        s = scapy.IP()
    AttributeError: 'module' object has no attribute 'IP'
    :ah:
     
  6. chibit

    chibit Life sucks.

    Регистр.:
    4 дек 2007
    Сообщения:
    420
    Симпатии:
    285
    Попробуй:
    import scapy
    help(scapy)
    print(dir(scapy))

    А вообще - похоже нету метода IP, либо он метод метода.
     
  7. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    dir ввел список
    ['__builtins__', '__doc__', '__file__', '__name__', '__path__']
    хотя сейчас запустил тест библиотеки - он запустился, начал писать в консоль какие функции открыты какие нет. Но теперь надо понят как вообще работать с библиотекой ведь я пробовал функции из мана.
    http://pastebin.com/8Km19wFG
    python %MYDIR%\scapy\tools\UTscapy.py -t regression.uts -f html -o scapy_regression_test_%DATE%.html

    как узнать что ему нужно чтобы начать работу? :eek:
    ++
    поднял глаза в мане и увидел что надо импротировать по другому))
    from scapy.all import *
    myip = IP()
    print (myip.show())
    но всё равно ничего не выводит. вместо информации о пакете получаю сообщение что печатать нечего

    Код:
    WARNING: No route found for IPv6 destination :: (no default route?)
    Traceback (most recent call last):
      File "D:/python/pq/untitled/socket", line 37, in <module>
        print (a.show())
      File "d:\python\p25\lib\site-packages\scapy-2.2.0-py2.5.egg\scapy\packet.py", line 799, in show
        ct.punct("]###"))
      File "D:\python\p25\Lib\site-packages\pyreadline\console\console.py", line 379, in write
        return self.write_color(text)
      File "D:\python\p25\Lib\site-packages\pyreadline\console\console.py", line 355, in write_color
        text = ensure_unicode(text)
      File "D:\python\p25\Lib\site-packages\pyreadline\unicode_helper.py", line 20, in ensure_unicode
        return text.decode(pyreadline_codepage, "replace")
    TypeError: decode() argument 1 must be string, not None
    
     
  8. chibit

    chibit Life sucks.

    Регистр.:
    4 дек 2007
    Сообщения:
    420
    Симпатии:
    285
    >argument 1 must be string, not None
    Вотъ. Теперь у тебя модуль импортировался и заработал) Правда пишет, что неправильный аргумент метода (возможно из-за этого WARNING: No route found for IPv6 destination :: (no default route?))
     
    KillDead нравится это.
  9. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    )) ага, но странно. Эту ошибку вызывает print, после подключения либы
    print 'hello'
    from scapy.all import *
    print 'hello'


    Код:
    hello
    WARNING: No route found for IPv6 destination :: (no default route?)
    Traceback (most recent call last):
      File "D:/python/pq/untitled/socket", line 32, in <module>
        print 'hello'
      File "D:\python\p25\Lib\site-packages\pyreadline\console\console.py", line 379, in write
        return self.write_color(text)
      File "D:\python\p25\Lib\site-packages\pyreadline\console\console.py", line 355, in write_color
        text = ensure_unicode(text)
      File "D:\python\p25\Lib\site-packages\pyreadline\unicode_helper.py", line 20, in ensure_unicode
        return text.decode(pyreadline_codepage, "replace")
    TypeError: decode() argument 1 must be string, not None
     
    Process finished with exit code 1
    
     
  10. chibit

    chibit Life sucks.

    Регистр.:
    4 дек 2007
    Сообщения:
    420
    Симпатии:
    285