Come leggo l'output di dns-sd?

6

Quando eseguo il comando dns-sd , ad esempio come dns-sd -B _services._dns-sd._udp. per elencare tutti i tipi di servizio sulla mia rete locale, ottengo una tabella che assomiglia a:

$ dns-sd -B _services._dns-sd._udp.
Browsing for _services._dns-sd._udp.
DATE: ---Tue 31 Dec 2013---
14:39:57.995  ...STARTING...
Timestamp     A/R    Flags  if Domain               Service Type         Instance Name
14:39:57.995  Add        3   4 .                    _tcp.local.          _ssh
14:39:57.996  Add        3   4 .                    _tcp.local.          _sftp-ssh

Ricevo "Timestamp" e "A / R" è probabilmente Aggiungi / Rimuovi. Cosa sono "Flags"? Cos'è "se"?

    
posta Ken 31.12.2013 - 23:44
fonte

2 risposte

2

Una risposta a metà:

Ho trovato il codice sorgente di dns-sd in Lion , dove "flags" è un valore di tipo DNSServiceFlags , che sembra essere una di queste costanti (deprecate) . Se è così, allora "3" significa "kDNSServiceFlagsAdd" insieme a "kDNSServiceFlagsMoreComing" e "2" significa solo "kDNSServiceFlagsAdd" ... non molto utile.

Secondo lo stesso programma, "if" è uint32_t ifIndex , l '"indice di interfaccia", che è anche menzionato su quella pagina degli sviluppatori Apple. Vedo valori come "4" e "0", e non riesco a capire il significato. Sembra sia una maschera di bit per la richiesta di una classe di interfaccia (dove 0 significa "qualsiasi", e -1 / -2 / -3 cast per un uint32_t sono altre classi), sia un indice in una lista di interfacce di rete (dove 0 significa "errore" e gli interi positivi indicano un'interfaccia valida). Ho solo un'interfaccia di rete attiva e non posso dire che sia "# 4" di qualcosa, o perché vedrei "0" per alcune richieste di dns-sd.

    
risposta data 01.01.2014 - 01:19
fonte
0

"se" è l'abbreviazione di "interfaccia". "interfaccia" è un termine nello stack del protocollo di rete arena, e in questo caso, un'interfaccia è un'entità software che si collega all'estremità inferiore del livello IP (Internet Protocol) dello stack. Un modulo software "interfaccia" fornisce un'API nota a IP, per collegare i driver hardware di rete al livello IP. Le interfacce tipiche forniscono questo binding per cose come Ethernet, WiFi, Bluetooth, Firewire, ecc. Dal momento che una determinata macchina può avere più di una interfaccia multimediale, il livello IP può collegarsi a più interfacce. Questi binding vengono tenuti traccia di semplici valori di indice in una tabella. Il valore "if" nel display dns-sd è semplicemente il numero di indice dell'interfaccia per cui il servizio è accessibile.

Puoi scoprire quali interfacce sono configurate nel tuo sistema quali altre utilità della riga di comando, come netstat -i . In OS X e in UNIX, è possibile visualizzare <Link#4> , che indica l'indice 4.

    
risposta data 30.09.2014 - 17:36
fonte

Leggi altre domande sui tag