Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-10-2011, 01:13   #1
Mattz
Member
 
L'Avatar di Mattz
 
Iscritto dal: Oct 2008
Messaggi: 192
[java] simulazione di pacchetti ICMP - tracerouting , come ricondursi a java

Devo preparare un mini progettino non sto chiedendo la pappa pronta ...che senso avrebbe.


Mi sono scontrato con un problema...sembrerebbe che java non supporti nativamente la possibilità di programmare in rete così a basso livello. Confermate?

Ho visto che alcuni risolvono con JMA (che dovrei studiarmi), ma temo sia solo per windows e io vorrei stare in ambiente unix. Altri usano Jcap.



Il tutto, penso, verrebbe più comodo con phyton. Però non lo conosco. Appena ho tempo me lo studio, ma temo sarebbe una cosa molto lunga..e soprattutto non so se sia il caso di sapere poco di tanti linguaggi invece di sviscerarne uno e conoscerne quante più librerie possibili.

Ad ora ho studiato C approfondendone più che altro le strutture dati. Java sempre strutture dati + swing + socket (sto seguendo il corso ora).



Pareri? Consigli? Mi affido a voi che avete una visione più ampia



edit: lavorando a "basso" livello, forse verrebbe comodo il C? Non ho mai studiato il networking in C, ma posso farlo visto che non devo partire da 0

Ultima modifica di Mattz : 01-10-2011 alle 01:55.
Mattz è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2011, 01:56   #2
Freaxxx
Senior Member
 
L'Avatar di Freaxxx
 
Iscritto dal: Dec 2006
Messaggi: 3808
mi sto informando per fare progetti relativi al networking, non ho quindi esperienza ma ho sbattuto il naso contro questa pagina http://download.oracle.com/javase/tu...etworking.html

che recita

Quote:
When you write Java programs that communicate over the network, you are programming at the application layer.
quindi la risposta è secca, almeno secondo il contenuto di quella pagina ufficiale, ma molto, in java, dipende anche da quali classi usi ( aka librerie ), perché Sun/Oracle ti dice sempre quello che vale in casa sua non in tutto il mondo della programmazione.
Freaxxx è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2011, 02:32   #3
Mattz
Member
 
L'Avatar di Mattz
 
Iscritto dal: Oct 2008
Messaggi: 192
magnifico


Quindi con il java "di base" non concludo nulla perchè sono troppo alto. Era meglio studiarsi il phyton .


Visto che non voglio studiare phyton con l'acqua alla gola, devo riuscire ad adattarmi al java. Per ora ho importato Jpcap (che permette di lavorare anche a più basso livello) ... adesso dovrò studiarmi la documentazione e darmi da fare.
Mattz è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2011, 02:52   #4
Freaxxx
Senior Member
 
L'Avatar di Freaxxx
 
Iscritto dal: Dec 2006
Messaggi: 3808
Quote:
Originariamente inviato da Mattz Guarda i messaggi
magnifico


Quindi con il java "di base" non concludo nulla perchè sono troppo alto. Era meglio studiarsi il phyton .


Visto che non voglio studiare phyton con l'acqua alla gola, devo riuscire ad adattarmi al java. Per ora ho importato Jpcap (che permette di lavorare anche a più basso livello) ... adesso dovrò studiarmi la documentazione e darmi da fare.
ma ti conviene lavorare a basso livello? controllare pacchetti? controllare header? controllare tutto il controllabile?
Freaxxx è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2011, 03:00   #5
Mattz
Member
 
L'Avatar di Mattz
 
Iscritto dal: Oct 2008
Messaggi: 192
Quote:
Originariamente inviato da Freaxxx Guarda i messaggi
ma ti conviene lavorare a basso livello? controllare pacchetti? controllare header? controllare tutto il controllabile?


devo..

quello che ho in mente è un'implementazione in java del classico tracerouting...quindi mi è utile poter creare dei pacchetti ICMP...
Mattz è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2011, 09:18   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Mattz Guarda i messaggi
Devo preparare un mini progettino [b]non sto
Mi sono scontrato con un problema...sembrerebbe che java non supporti nativamente la possibilità di programmare in rete così a basso livello. Confermate?
*snip*

Premetto che le mie limitate conoscenze sono praticamente rivolte al solo lato desktop, quindi so poco o niente di programmazione internet (a parte le nozioni generali). Incuriosito da questo thread sono andato a vedere cosa si intende per traceroute e ho cercato l'home page di questa Jpcacp.

In meno di cinque minuti ho trovato un sorgente di esempio di ruimentale traceroute fatto in Java usando le Jpcap.
Consiglio all'autore del thread di andare nella home page di Jpcap e informarsi, in particolare una visita nella sezione Samples potrebbe essere proficua.

@EDIT: tra l'altro dando un'occhio ai javadoc è facile rendersi conto che Jpcap non deve essere un'API che richieda troppo tempo per essere assimilita: a livello quantitativo è composta da due package per un totale di un pugno di classi.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 03-10-2011 alle 10:32.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2011, 09:31   #7
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Non credo proprio che un traceroute si possa fare da J2SE liscio. Considera che devi forgiare dei pacchetti a mano, incrementando il time-to-live per ogni hop (traceroute funziona così: mandi pacchetti sempre allo stesso endpoint ma inizi con TTL = 1, poi 2, 3, 4, etc... e vedi chi ti risponde).
La via più facile è usare libpcap o un suo binding (come jpcap appunto).
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2011, 09:50   #8
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da shinya Guarda i messaggi
La via più facile è usare libpcap o un suo binding (come jpcap appunto).
Ah, ecco, mi era sfuggito il fatto che jpcacp fosse un *binding* in Java di una libreria C. L'ho già detto che sono ignorante in materia?
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 03-10-2011 alle 10:32.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2011, 10:05   #9
Mattz
Member
 
L'Avatar di Mattz
 
Iscritto dal: Oct 2008
Messaggi: 192
Jpcap è davvero molto utile. Dopo aver perso fin troppo tempo per compilarlo per il mio ubuntu 64bit, sto implementando il tracerouting ... e non è neppure difficile, devo dire.

ps. Ho dato un occhiata alla pagina con gli esempi...assurdo..ci sono pure i codici di cui ho bisogno , però non li guarderò altrimenti non imparo nulla



edit: ne approfitto per chiedere una cosa sui pacchetti...sono novizio di queste cose:

ICMP è incapsulato in IP, ma per inviare il pacchetto non dovrei "scegliere" un protocollo di livello4 tra TCP e UDP?

Mi spiego meglio: se non usassi jpcap , dovrei manualmente aprire una socket (tcp o udp) e inviare pacchetti (penso)...invece con jpcap posso direttamente creare un pacchetto ICMP, settare i vari campi e mandare in non so che modo tramite un suo metodo. La classe ICMP non è legata in nessun modo a quella TCP o UDP.

Non capisco bene la questione dell'incapsulamento dei vari livelli. Ogni pacchetto che invio devo sempre incapsularlo fino ad arrivare a livello 4?


edit2: continuando a studiarmi queste cose , trovo spesso scritto che ICMP è incapsulato in ip e che quindi non è garantita la consegna. Rendo allora più chiara la domanda del mio primo edit: come è possibile inviare un pacchetto , senza passare attraverso un protocollo di livello 4?
O jpcap con il suo send.(pacchetto); in realtà sta automatizzando il passaggio a livello 4, oppure non capisco come sia possibile inviare un pacchetto ICMP



edit3: e poi basta . Ho capito che ICMP è un protocollo "speciale" e non è legato ad UDP o TCP perchè a tutti gli effetti non è usato per il trasporto dati. Viene instradato "a parte" proprio da livello3. Quindi non devo preoccuparmi di incapsularlo in TCP o UDP (neppure potrei), perchè in quanto pacchetto ICMP, sarà inviato per conto proprio. Confermate?

Ultima modifica di Mattz : 03-10-2011 alle 10:40.
Mattz è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2011, 16:40   #10
Mattz
Member
 
L'Avatar di Mattz
 
Iscritto dal: Oct 2008
Messaggi: 192
creo un nuovo messaggio, non per uppare, ma per non pasticciare ulteriormente quello sopra.

Mi sono ritrovato di fronte ad un problema concettuale che non riesco a risolvere:

una volta creato il pacchetto ICMP con i campi di mio interesse e i campi dedicati al protocollo IP, devo specificare il datalink. Ed è qui che mi ritrovo a non capire. So che il datalink è di livello inferiore (2) e ne comprendo la funzione, ma non capisco fino a che punto devo essere io a specificare i vari livelli.

Ovvero, mettendo di dover mandare un pacchetto dati:

scelgo ad esempio TCP (livello 4), al suo interno imposto i campi IP (livello 3) altrimenti a chi manda il pacchetto.. , nei vari codici vedo poi che anche il livello 2 viene specificato: si ottiene il MAC della propria macchina e il MAC del gateway e si mette tutto in un campo datalink.
Ma allora fino a che punto devo incapsulare protocolli? Ogni volta devo arrivare a livello2?

Forse dipende dal tipo di linguaggio/libreria che sto usando? Ad esempio lavorando con le socket di java dovrei solo preoccuparmi del livello 4 (scegliendo la socket TCP o UDP)?

E' proprio una lacuna concettuale che non riesco a risolvere...e se qualcuno avesse la pazienza di spiegarmi cosa sto sbagliando mi farebbe un grande favore...perchè se non capisco bene le basi non potrò fare applicazioni complesse (ma neppure semplici..)

Grazie



edit: forse ho trovato conferme: "If this JpcapSender instance was created by openRawSocket(), you can only send IP packets, but you may not need to set the Datalink layer's header of the IP packets you want to send.
Note: the implementation and behavior of a raw socket may vary in different OS. For example, in Windows 2000/XP, you need to manually set the datalink/IP headers of a packet. "

quindi dipende proprio dal sistema + linguaggio + metodi ... o no?



edit2: riedito solo per far sapere che Jpcap ha una documentazione che fa schifo. Non c'è scritto praticamente nulla e si deve andare a tentativi. Oltre a questo , l'intero funzionamento delle librerie è molto dubbio visto che certi parametri vengono ignorati senza troppi complimenti nel momento di creazione del pacchetto.

Ultima modifica di Mattz : 04-10-2011 alle 14:25.
Mattz è offline   Rispondi citando il messaggio o parte di esso
Old 09-10-2011, 12:45   #11
starfred
Senior Member
 
Iscritto dal: Jul 2011
Messaggi: 381
ciao, il discorso è abbastanza semplice e si parte dal presupposto che tu hai OBBLIGATORIAMENTE bisogno dell'indirizzo mac mittente e dell'indirizzo mac del next-hop. Detto questo la documentazione che hai incollato spiega che in alcuni OS l'assegnamento dei vari mac address è automatica, in altri no.
__________________
Concluso positivamente con: Kamzata, Ducati82, Arus, TheLastRemnant, ghost driver, alexbull1, DanieleRC5, XatiX
starfred è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Roscosmos ha posticipato (ancora) il lan...
Isar Aerospace si prepara al secondo lan...
Tory Bruno è entrato in Blue Orig...
Fujifilm lancia la cartuccia per archivi...
Dreame H15 Mix: la soluzione 7-in-1 per ...
AirPods Pro 3 in forte sconto su Amazon:...
36 offerte Amazon, molte appena partite:...
2 caricatori multipli eccezionali: da 28...
OLED e 360 Hz a un prezzo senza preceden...
Roborock Q10 S5+ a un prezzo molto conve...
Upgrade PC a prezzo ridotto: le migliori...
Sono i 6 smartphone migliori su Amazon: ...
Google Pixel 9a a 361€, mai così ...
Super sconti sugli spazzolini Oral-B, an...
Aspira a 6000Pa, lava bene, costa 139€: ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:15.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v