
Leggi questo in altre lingue: English, Español, Deutsch, Français, Italiano, 简体中文.
Packet Sender è un'utilità open source che permette di inviare e ricevere pacchetti TCP, UDP e SSL (TCP crittografato), nonché richieste HTTP/HTTPS e la generazione di pannelli. Il ramo principale supporta ufficialmente Windows, Mac e Linux desktop (con Qt). Altri distributori possono ricompilare e ridistribuire Packet Sender. Packet Sender è gratuito e rilasciato sotto licenza GPL v2 o successiva. Può essere utilizzato sia per scopi commerciali che personali. Se trovi utile l'applicazione, considera di donare o sponsorizzare per far continuare lo sviluppo.
Packet Sender desidera ringraziare i seguenti sponsor.
IWL è un'azienda californiana che produce dispositivi per il networking informatico.
NagleCode è un editore di software e uno studio di sviluppo.
Eletiope installa impianti di illuminazione, audiovisivi e stanze immersive per mostre e musei, nonché per showroom aziendali.
John Huntington
Autore, consulente, educatore, ingegnere del suono, fotografo pluripremiato e storm chaser.
Vuoi che il tuo nome/logo sia elencato qui?
NOTA: Prova (temporaneamente) a disattivare il firewall se hai problemi su Windows.
Le versioni ufficiali di Packet Sender possono essere scaricate su PacketSender.com. Alcuni siti ridistribuiscono Packet Sender.

Packet Sender per iOS è completamente nativo, richiede il minimo indispensabile di permessi e non raccoglie alcun dato. Questo è software che ti rispetta. Grazie per aver supportato questo progetto.
La versione iOS si trova sull'Apple App Store
Packet Sender è identico su tutte le versioni desktop. L'unica differenza è il tema che si adatta al sistema operativo.

I campi in alto possono essere navigati con CTRL+1, CTRL+2, ecc. fino a CTRL+8 (pulsante Invia). Su Mac il tasto è Command.
Le hotkey e i campi sono:
Alcune note:
All'avvio Packet Sender attiva di default i server UDP, TCP e SSL su porte casuali (mostrate come pulsanti in basso a destra). Puoi associare un numero qualsiasi di porte (se il sistema operativo lo permette), usando numeri separati da virgola. Ad esempio 0, 1000, 2000 assocerà una porta casuale e le porte 1000 e 2000.

Il pulsante UDP ora mostra 3 porte associate. Una di esse è casuale.

L'altra impostazione è rispondere a tutte le richieste con una replica. Puoi anche far sì che la risposta sia una macro. C'è un campo per digitare la replica (o caricare un pacchetto salvato).
Di default Packet Sender si associa a qualsiasi indirizzo IPv4. In questa sezione delle impostazioni puoi associare a qualsiasi IPv6 oppure a un indirizzo IP specifico.
Associare a un indirizzo specifico è molto utile quando ci sono più schede di rete e vuoi forzare il traffico (ad esempio pacchetti broadcast) su una specifica interfaccia.

Alcuni protocolli si aspettano che il server invii dati prima che il client invii (come molti servizi telnet). Questo flusso di lavoro può essere abilitato con "Ricevi prima di inviare".
Se hai un dispositivo lento (ad esempio un server embedded con un processore debole), puoi abilitare "500 ms di ritardo dopo la connessione". Questo darà al server lento il tempo di avviare il gestore.
I server integrati di Packet Sender sono configurati per supportare IPv4 o IPv6 ma non entrambi contemporaneamente. Per i client, la GUI e la CLI di Packet Sender passeranno senza problemi tra le due modalità all'invio (può essere necessario lo scope ID per IPv6). Clicca sul pulsante IPv4 / IPv6 in basso a destra per alternare tra le due.
Nelle impostazioni puoi anche forzare i server di Packet Sender ad associarsi a un indirizzo IP personalizzato. Questo è molto utile su sistemi con più schede di rete o configurazioni IP complesse. Packet Sender genererà un errore se gli viene chiesto di associarsi a un indirizzo inesistente.

Packet Sender include un calcolatore di subnet integrato. Si trova nel menu Strumenti.
Wake-On-LAN (o WOL) è un protocollo che dice ai computer di svegliarsi dal sonno. Viene attivato da un pacchetto broadcast con dati speciali basati sull'indirizzo MAC del destinatario. Per maggiori informazioni, consulta Wikipedia.
Packet Sender include un generatore WOL integrato. Si trova nel menu Strumenti.

Compila le opzioni e la GUI principale verrà riempita con i dati corretti per il formato WOL.

Ci sono anche opzioni CLI per generare e inviare pacchetti WOL
packetsender --wol f8:23:66:30:e5:30
Invio broadcast Wake-On-LAN al target: F8:23:66:30:E5:30 sulla porta 7
UDP (60360)://255.255.255.255:7 ff ff ff ff ff ff f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30
Wake-On-LAN (o WOL) è un protocollo che permette di risvegliare i computer dalla modalità sospensione.
Viene attivato inviando un pacchetto broadcast contenente dati speciali basati sull'indirizzo MAC del computer target.
Per maggiori informazioni, consulta la pagina Wikipedia.
Packet Sender include un generatore WOL integrato. Si trova nel menu Strumenti.

Compila le opzioni richieste e l'interfaccia principale verrà automaticamente popolata con i dati corretti nel formato WOL.

Sono disponibili anche opzioni da riga di comando (CLI) per generare e inviare pacchetti WOL.
packetsender --wol f8:23:66:30:e5:30
Sending broadcast Wake-On-LAN to target: F8:23:66:30:E5:30 on port 7
UDP (60360)://255.255.255.255:7 ff ff ff ff ff ff f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30
Packet Sender supporta l'instaurazione di connessioni crittografate tramite SSL.
Questa funzionalità è disponibile sia nell'interfaccia grafica (GUI) che da riga di comando.
Packet Sender include OpenSSL per l'utilizzo su Windows. Su Mac e Linux, Packet Sender utilizzerà le librerie SSL native del sistema.
Note su SSL:
Packet Sender include un certificato interno "Snake Oil" da utilizzare come server su Windows. Il certificato e la chiave si trovano nella stessa posizione dei file di pacchetti e delle impostazioni.
Nota: Modificando i percorsi dei certificati nelle Impostazioni, viene sovrascritto anche il certificato snake-oil.
In caso di errore SSL, Packet Sender lo riporta nel log del traffico. Se l'impostazione è di proseguire comunque (predefinita), la negoziazione della crittografia continua. In caso contrario, la connessione termina con un fallimento.

Il supporto multicast di Packet Sender si attiva tentando di inviare a un indirizzo multicast IPv4 o dal sottomenu multicast. La funzionalità è attualmente sperimentale e presenta i seguenti problemi noti.
Non esiste supporto per multicast IPv6, sebbene sia nella roadmap di sviluppo. Gli sponsor interessati al supporto multicast IPv6 sono invitati a contattarmi.
Quando il normale sistema di invio non è sufficiente, è possibile inviare un flusso intenso di pacchetti a un IP target per verificare se il dispositivo riesce a gestirlo.
Questa funzione si trova nella barra degli strumenti della GUI: Strumenti → Generatore di Traffico Intenso
Si prega di notare che questa funzionalità è sperimentale e le metriche visualizzate non sono state completamente testate. Per un test più accurato, si consiglia di utilizzare la versione CLI di questo strumento.
I set di pacchetti possono essere salvati, recuperati e condivisi rapidamente utilizzando il servizio gratuito Packet Sender Cloud.
Il cloud può essere utilizzato anche per visualizzare pubblicamente e distribuire i propri pacchetti (tramite un URL) per collaborazioni, tutorial, utenti finali, ecc. Packet Sender può importare set di pacchetti pubblici tramite URL pubblici.
Esistono diversi motivi per farlo:

Se stai pubblicando un'API di rete, mantenere una pagina cloud pubblica è molto più semplice rispetto a descrivere in modo laborioso (IP, porta, tipo, ecc.) i pacchetti agli utenti. Inoltre, aggiornare quella pagina è facile.
Maggiori informazioni sono disponibili qui:
https://cloud.packetsender.com/help
Packet Sender dispone di una modalità "portatile". All'avvio, cerca il file portablemode.txt e popola eventuali file di impostazioni mancanti nella directory di esecuzione.
Questi file sono: packets.ini, ps_settings.ini, ps.key e ps.pem.
È anche possibile mantenere alcuni file in modalità portatile e altri nella posizione standard rimuovendo portablemode.txt.
Se non hai bisogno dell'interfaccia grafica, puoi rimuovere queste DLL:
Nota: le DLL con il carattere + nel nome possono creare problemi con il copia-incolla da riga di comando di Windows se non vengono racchiuse tra virgolette ".
Se non utilizzi SSL, puoi rimuovere queste DLL:
La directory di esecuzione su Windows è la stessa in cui si trova il file .exe.
Per gli utenti Mac, la directory di esecuzione si trova in:
PacketSender.app/Contents/MacOS
Se vengono trovati file INI in quella posizione, verranno utilizzati al posto di %APPDATA% o Library/Application Support.
Packet Sender supporta fino a 5 risposte intelligenti.
Per abilitare questa funzione, vai su File → Impostazioni nella barra degli strumenti della GUI.
Passa alla scheda Smart Responses e attiva la casella Send a Smart Response.
Packet Sender supporta le seguenti macro durante l'invio delle risposte:
{{DATE}} — Invia la data corrente nel formato "yyyy-mm-dd"{{TIME}} — Invia l'ora corrente nel formato "hh:mm:ss ap"{{UNIXTIME}} — Invia il timestamp epoch corrente{{COUNTER}} — Invia un contatore incrementale per ogni pacchetto che lo utilizza. Parte da 1 all'avvio.{{RANDOM}} — Invia un numero casuale compreso tra 0 e 32767 (32-bit) o 2147483647 (64-bit) a seconda della build (l'installer predefinito Windows è 32-bit, Mac è 64-bit){{UNIQUE}} — Invia una stringa casuale generata tramite UUID internoPacket Sender sostituisce le macro con i valori reali prima dell'invio.
Packet Sender supporta connessioni TCP e SSL persistenti tramite una finestra GUI separata.
Si attiva tramite una casella di spunta nella finestra principale o dalle Impostazioni.
Le connessioni persistenti non sono supportate da riga di comando.
Packet Sender supporta l'invio di richieste POST/GET tramite HTTP e HTTPS.
Il menu a tendina del protocollo include: HTTP GET, HTTP POST, HTTPS GET, HTTPS POST.
Quando si seleziona HTTP(S), i campi si aggiornano in: Nome, Request, Address, Data (se POST), pulsante Generate Data (se POST), Load File (se POST).
Puoi anche incollare un URL completo nel campo Request: Packet Sender lo analizzerà e compilerà automaticamente gli altri campi.
chiave=valorechiave=valore&chiave=valore&chiave=valore
Packet Sender supporta la creazione di pannelli di controllo.
I pannelli sono composti da pulsanti a cui sono associati script (pacchetti). Cliccando un pulsante si eseguono i pacchetti collegati.
I pannelli possono essere creati in due modi:
È possibile avviare Packet Sender in modalità solo-pannello con il pannello starter usando l'opzione da riga di comando --starterpanel
Per iniziare a programmare i pulsanti, apri un pannello e passa alla modalità Editing.
Una volta aperto il progetto, controlla il pulsante in basso a destra: se dice "Viewing" sei in modalità visualizzazione. Cliccalo per passare a "Editing".
Lo script di un pulsante contiene il nome del pacchetto da inviare.
È possibile associare più pacchetti a un pulsante inserendo un nome per riga.
Il generatore supporta l'inserimento di un ritardo tra pacchetti multipli con:
delay:_numero_di_secondi_
Supporta anche il caricamento di un nuovo pannello con:
panel:_numero_id_pannello_
È possibile creare pulsanti che aprono file locali o URL.
In modalità Editing, clicca sul + in basso a destra.
Dopo aver incollato, ti verrà chiesto di dare un nome al pulsante.
I pulsanti appaiono in fondo al pannello.
In modalità Editing puoi modificarli o eliminarli (tasto X).
In modalità Viewing cliccandoli si aprirà l'URL nel browser predefinito o il file con l'applicazione associata.
In modalità Editing appare una barra con menu: File, Export, Settings, Help.
Da qui puoi salvare, esportare, importare, caricare progetti e modificare il pannello corrente.
Dal menu Settings puoi:
Al momento DTLS è supportato solo nell'interfaccia grafica su Windows.
Su altri sistemi operativi è possibile abilitarlo compilando da sorgente con Qt6.
Questa funzionalità aggiunge il protocollo DTLS (Datagram Transport Layer Security) con interfaccia grafica per configurare e gestire connessioni DTLS, inclusa verifica del server e persistenza della sessione.






Packet Sender può essere utilizzato da riga di comando.
Su Windows usa l'estensione .com (packetsender.com) per la modalità CLI.
Puoi anche usare semplicemente packetsender senza estensione.
Usare .exe avvia invece la GUI.

Su Linux (e Mac) segue lo stile tipico delle utility: opzioni lunghe (--version) e corte (-v), ordine libero.
Le ultime tre opzioni sono posizionali: indirizzo, porta, dati (opzionali se si usa un pacchetto salvato).
packetsender --help
Usage: packetsender [options] address port data
Packet Sender is a Network UDP/TCP/SSL/HTTP Test Utility by NagleCode
See https://PacketSender.com/ for more information.
Options:
-h, --help Mostra aiuto sulle opzioni
--help-all Mostra aiuto completo (inclusi opzioni Qt)
-v, --version Mostra versione
-q, --quiet Modalità silenziosa. Stampa solo i dati ricevuti
-x, --hex Interpreta i dati come hex (default per TCP/UDP/SSL)
-a, --ascii Interpreta come mixed-ascii (default per HTTP e GUI)
-A, --ASCII Interpreta come puro ASCII (nessuna traduzione \xx)
-l, --listen Ascolta invece di inviare
-r, --response <ascii> Risposta in modalità server (supporta macro)
-w, --wait <ms> Attende fino a <ms> per una risposta (0 = non aspettare)
-f, --file <path> Invia contenuto del file (max 10 MiB UDP, 100 MiB TCP/SSL)
-b, --bind <port> Porta di bind (default 0 = dinamica)
-6, --ipv6 Forza IPv6
-4, --ipv4 Forza IPv4
-B, --bindip <IP> Bind su IP specifico
-t, --tcp Invia TCP (default)
-s, --ssl Invia SSL ignorando errori
-S, --SSL Invia SSL e si ferma in caso di errore
-u, --udp Invia UDP
--http <http> Invia HTTP (GET o POST)
-n, --name <name> Invia pacchetto salvato con quel nome
--wol <mac> Invia Wake-On-LAN a <mac> (opzionale <port>)
--bps <bps> Traffico intenso: bit per secondo
--num <number> Traffico intenso: numero di pacchetti
--rate <Hertz> Traffico intenso: frequenza
--usdelay <microseconds> Traffico intenso: ritardo tra invii
--max Traffico intenso: velocità massima possibile
Arguments:
address Indirizzo/URL destinazione
port Porta / dati POST
data Dati da inviare
La CLI segue lo stesso formato su Windows, Linux e Mac.
Il formato è:
packetsender [options] address port data
packetsender -taw 500 mirrors.xmission.com 21 "USER anonymous\r\nPASS [email protected]\r\n"
TCP (65505)://mirrors.xmission.com:21 55 53 45 52 20 61 6e 6f 6e 79 6d 6f 75 73 0d 0a 50 41 53 53 20 63 68 72 6f 6d 65 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 0d 0a
Response Time:5:51:37.042 pm
Response HEX:32 32 30 2D 57 65 6C 63 6F 6D 65 20...
Response ASCII:220-Welcome to XMission Internet...
Utilizza le opzioni di bind esistenti per configurare il server.
-b per la porta-B per l'IP-t / -u / -s per TCP, UDP o SSL-r per inviare una risposta (supporta macro in ASCII)Binding su porta dinamica usando TCP
packetsender -l
TCP Server started on 0.0.0.0:52567
Use ctrl+c to exit server.
From: 127.0.0.1, Port:52568
Response Time:2024-06-04 19:01:53.198
Response HEX:48 65 6C 6C 6F
Response ASCII:Hello
From: 127.0.0.1, Port:52569
Response Time:2024-06-04 19:02:24.063
Response HEX:57 6F 72 6C 64
Response ASCII:World
Binding sulla porta 8080 usando UDP
packetsender -l -u -b 8080
UDP Server started on 0.0.0.0:8080
Use ctrl+c to exit server.
From: ::ffff:127.0.0.1, Port:49500
Response Time:2024-06-04 19:04:28.890
Response HEX:48 65 6C 6C 6F 20 55 44 50 20 50 61 63 6B 65 74
Response ASCII:Hello UDP Packet
Binding sulla porta 8080 usando UDP con risposta contenente l'ora corrente
packetsender -l -u -b 8080 -r "{{TIME}}"
Loading response packet.
UDP Server started on 0.0.0.0:8080
Use ctrl+c to exit.
From: ::ffff:127.0.0.1, Port:59594
Response Time:2024-06-05 20:48:18.180
Response HEX:68 65 6C 6C 6F 20 70 61 63 6B 65 74 20 73 65 6E 64 65 72
Response ASCII:hello packet sender
From: You (Response), Port:59594
Response Time:2024-06-05 20:48:18.182
Response HEX:30 38 3a 34 38 3a 31 38 20 70 6d
Response ASCII:08:48:18 pm
Binding su IP 192.168.86.26, porta 54321 usando SSL
packetsender -l -s -B 192.168.86.26 -b 54321
Binding to custom IP 192.168.86.26
Listening for SSL packets in server mode.
SSL Server started on 192.168.86.26:54321
Use ctrl+c to exit server.
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.726
Error/Info:Encrypted with AESGCM(256)
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.726
Error/Info:Authenticated with RSA
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.726
Error/Info:Peer cert issued by
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.726
Error/Info:Our Cert issued by SnakeOil
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.747
Response HEX:43 6F 6F 6C 20 53 53 4C
Response ASCII:Cool SSL
La riga di comando di Packet Sender può effettuare il bind su porte personalizzate per forzare le modalità IPv4/6 o utilizzare più schede di rete (NIC) tramite l'opzione -B.
packetsender -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hello\r"
packetsender -taw 3000 192.168.0.201 5005 "Hello\r"
packetsender -B 192.168.0.200 -taw 3000 192.168.0.201 5005 "Hello\r"
packetsender -B fe80::a437:399a:3091:266a%ethernet_32769 -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hello\r"
packetsender -B fe80::a437:399a:3091:266a -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hello\r"
La riga di comando offre l'opzione di ignorare o interrompere in caso di errori SSL. Il comportamento predefinito è ignorare.
-s per inviare tramite SSL e ignorare gli errori.-S per inviare tramite SSL e interrompere in caso di errori.packetsender -saw 500 expired.packetsender.com 443 "GET / HTTP/1.0\r\n\r\n"
SSL Error: The certificate has expired
SSL (54202)://expired.packetsender.com:443 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a 0d 0a
Cipher: Encrypted with AES(128)
Response Time:3:24:55.695 pm
Response HEX:48 54 54 50 2f 31 2e 31 20 34 32 31 20 0d 0a 53 65 72 76 65 72 3a 20 6e 67 69 6e 78 2f 31 2e 31 30 2e 30 20 28 55 62 75 6e 74 75 29 0d
Response ASCII:HTTP/1.1 421 \r\nServer: nginx/1.10.0 (Ubuntu)\r
Nota: questo utilizza i pacchetti predefiniti integrati.
packetsender --name "HTTPS POST Params"
packetsender --http GET "https://httpbin.org/get"
packetsender --http POST "https://httpbin.org/post" "{}"
Il generatore di traffico intenso da riga di comando funziona in modo molto simile alla versione GUI, ma è un po' più accurato, offre maggiori opzioni di controllo (e maggiore intensità!).
Vedi di seguito alcuni esempi di utilizzo. Nota che questi calcoli sono "Best Effort". Funziona bene, ma picchi del processore o vari problemi di rete possono alterare i risultati. Il threading non è in tempo reale e non è particolarmente intelligente nei tentativi di compensazione.
Nota: Su Windows, usa la build ".com", quindi in ogni esempio dovrai scrivere packetsender.com invece di packetsender
packetsender --rate 20 --name "My Awesome Packet"
packetsender --bps 2000 --name "My Awesome Packet"
packetsender --rate 0 --name "My Awesome Packet"
packetsender --usdelay 2000000 --name "My Awesome Packet"
L'unica dipendenza è Qt SDK
PacketSender.pro
Le versioni per Windows e Mac sono state compilate con Qt 5.12. Packet Sender supporta anche Qt 6, tuttavia non supporta cmake.
Ecco la sequenza di comandi per Ubuntu 16.04. Adattala alla tua distribuzione Linux. Packet Sender non richiede librerie aggiuntive oltre al Qt SDK standard. Mi è stato segnalato che ci sono problemi di compilazione con Fedora stock. Se qualche esperto di Fedora ha suggerimenti, fatemelo sapere e aggiungerò le istruzioni.
Se ti senti avventuroso, sentiti libero di compilare dal branch master.
Contiene l'ultima build stabile.
Il branch development dovrebbe probabilmente essere evitato.
sudo apt-get update
sudo apt-get install qt5-default build-essential
wget https://github.com/dannagle/PacketSender/archive/(Version).tar.gz
tar -xzvf (Version).tar.gz
cd PacketSender-(Version)/src
qmake PacketSender.pro
make
Per eseguire usa:
./PacketSender
Se non si avvia, potrebbe essere necessario renderlo eseguibile
chmod a+x PacketSender
Manca una funzionalità? Puoi assumermi per aggiungerla a Packet Sender.
La licenza è GPL v2 o successive. Contattami se richiedi una licenza diversa. Alcune distribuzioni di Packet Sender possono utilizzare OpenSSL. La VPAT più aggiornata può essere trovata in questo repository.
Packet Sender è stato scritto da Dan Nagle ed è pubblicato da © NagleCode, LLC - @NagleCode - PacketSender.com