Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Programma che usa ICMP

    Ciao a tutti,
    avevo una curiosità, come faccio a scrivere un programma che usa il protocollo ICMP?
    Posso farlo in C o in Java? Devo usare delle particolari librerie a seconda di quale sistema operativo adopero?
    Il mio scopo era quello di scrivere una sorta di Ping, però ero curioso di sapere se in generale data la conoscenza di un protocollo è quasi immediato scrivere un programma che lo utilizzi

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Puoi farlo in qualsiasi linguaggio per il quale esista una libreria di manipolazione dei socket: C/C++, Java, Delphi (con le API), VB6 (con le API), VB.NET, C# e chissà quanti altri... :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    grazie della risposta immediata alka,
    girando un pò ho visto che in Java non è una cosa semplicissima

    da http://www.faqs.org/faqs/computer-la...k-programming/
    3.5 How do I implement PING in Java?

    Java includes support for UDP and TCP sockets. PING
    requires support for the Internet Control Message Protocol
    (ICMP). Your only choice (at the moment), is to use native
    code, or to use java.lang.Runtime to execute an external
    ping application. You won't be able to develop a 100% Pure
    implementation.

    NB - A native implementation that uses the Java Native
    Interface (JNI) is available for PING, in both English and
    Spanish. For more details, see
    http://www.geocities.com/SiliconValley/Bit/5716/ping/

    magari mi butterò sul C col quale ho visto molte implementazioni

  4. #4
    Indipendentemente dal linguaggio, in linea di massima: dovrai costruire la struttura del pacchetto ICMP (type, code, checksum, id e ovviamente payload, se non ricordo male) e mandarla banalmente mediante un socket RAW.
    Successivamente dovrai ricevere l'ECHOREPLY di ritorno o col medesimo socket RAW funzionante a mo' di sniffer oppure utilizzando una libreria di sniffing apposita (esempio pcap). Col primo metodo ti risparmi sicuramente codice.

    Qui vi è un'implementazione di ping in python:
    http://oss.coresecurity.com/impacket/ping.py
    ...che utilizza un binding a pcap per ricevere l'ECHOREPLY di ritorno.
    Come puoi vedere non è niente di troppo complesso.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  5. #5
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.