Come accedere al nome di una stampante da IP sulla rete in C #?

Posso arrivare alla stampante con il nome “\\ xxxx \ [nome della stampante]” ma non ho idea di come accedervi con solo l’IP della stampante. Qualche idea?

EDIT: le risposte sembrano suggerire che posso semplicemente scambiare il nome della stampante per l’indirizzo IP della stampante, tuttavia questo non sembra essere il caso. Altre idee?

AGGIORNAMENTO: la ragione per indirizzare la stampante come un IP è che i membri della rete hanno dato a tutte le stampanti lo stesso nome di condivisione, quindi non ho modo di distinguerle, a parte il loro IP.

Esattamente allo stesso modo.

\\1.2.3.4\somesharedprinter 

Dove “1.2.3.4” è l’indirizzo IP di qualsiasi cosa stia condividendo la stampante.

Modificare:

Anche se la tua stampante ha un’interfaccia di rete integrata, separiamo mentalmente la stampante dal server di stampa per un momento.

Quando si ha un computer, chiamiamolo Bob, e si condivide una stampante, chiamiamola printy, è ansible accedervi in ​​questo modo:

\\Bob\printy

La prima parte di questo indirizzo è il nome host o l’indirizzo IP. Se l’indirizzo IP di Bob era 1.2.3.4, potresti facilmente utilizzare questo indirizzo:

\\1.2.3.4\printy

Ora sembra che la tua stampante abbia un server di stampa integrato che gli consente di condividersi essenzialmente sulla rete. La maggior parte di questi server di stampa è completamente compatibile con Condivisione file / stampanti Windows. Quindi se l’IP della stampante è 2.3.4.5, potremmo usare un indirizzo come questo:

\\2.3.4.5\something

Vuoi la parte something , si? Per fare questo dobbiamo enumerare le condivisioni su quel server di stampa. Puoi farlo con il codice trovato qui: http://www.codeproject.com/KB/IP/networkshares.aspx

Per quanto ne so, non esiste un modo gestito per ottenere un elenco di condivisioni su un server, quindi il link sopra è probabilmente la migliore opzione per ora.

Devo anche notare che un altro standard comune per i server di stampa è HP Jet Direct. Non è ansible stampare (bene è ansible, ma è un hacker) fino a quando non si installa la stampante sul sistema. Per fare questo, andresti su Stampanti, Aggiungi stampante, scegli una stampante “locale” (sì, controintuitiva), quindi per porta scegli TCP / IP, quindi inserisci l’indirizzo IP.

Se ha un nome host ha un IP e possono essere scambiati secondo necessità.

 \\MyMachine\MyPrinter 

… equivale a …

 \\10.0.0.1\MyPrinter 

Se la stampante non è su una macchina ed è una stampante in rete, avrà il proprio indirizzo IP che è ansible utilizzare.

 \\MyPrinter 

… equivale a …

 \\10.0.0.2