Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

[VBA] Verificare se mi trovo in LAN locale

Linguaggi e sistemi

Moderatori: Foto UtenteMassimoB, Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[1] [VBA] Verificare se mi trovo in LAN locale

Messaggioda Foto UtenteBobo360 » 13 gen 2023, 16:52

Ciao a tutti, ho la necessita di riconoscere se mi trovo in Ufficio o a Casa.
cioè in ufficio abbiamo un server collegato in LAN.
Ora mi piacerebbe riconoscere in automatico se sono in ufficio oppure mi trovo a casa.
Se sono in ufficio uso dei comandi per copiare file o aprire cartelle via LAN
mentre se sono in ufficio uso comandi FTP.

ho sperimentato questo codice:
Codice: Seleziona tutto
[B]Private Sub Comando6_Click()[\B]
Dim FSO As Object
Dim cartella As String
cartella = "\\192.168.1.200\Scanner\CartellaTest\"
Set FSO = CreateObject("Scripting.FileSystemObject")
On Error GoTo ERRORE
FSO.CreateFolder (cartella)
Me.Locale = "Ufficio"
FSO.DeleteFolder (cartella)
Exit Sub

ERRORE:
        Me.Locale = "FTP"
End Sub


Solo che il problema che risconto, che se sono in ufficio la creazione della cartella è immediata, mentre se sono a casa per tentare di creare la cartella, quindi prima di dare errore passono 55 secondi.
Si può fare qualcosa di più immediato?

Grazie

;-) ;-) O_/
Avatar utente
Foto UtenteBobo360
30 4
Frequentatore
Frequentatore
 
Messaggi: 141
Iscritto il: 12 nov 2008, 12:55

1
voti

[2] Re: [VBA] Verificare se mi trovo in LAN locale

Messaggioda Foto Utentealev » 13 gen 2023, 17:11

Non conosco VBA ma, per identificare in quale LAN ti trovi, userei una verifica di un MAC Address a scelta (hub/switch oppure gateway)

Il problema che rilevi è probabilmente dovuto alle impostazioni di TimeOut della LAN di casa e non credo siano modificabili senza intervenire sui firmware delle interfacce di rete remote
Avatar utente
Foto Utentealev
5.183 2 9 12
free expert
 
Messaggi: 5647
Iscritto il: 19 lug 2010, 14:38
Località: Altrove

0
voti

[3] Re: [VBA] Verificare se mi trovo in LAN locale

Messaggioda Foto UtenteBobo360 » 13 gen 2023, 18:00

Grazie, questa è una bellissima idea, ma non ho mai usato verifiche di MAC address con VBA, se qualcuno mi può dare una mano? grazie.
Avatar utente
Foto UtenteBobo360
30 4
Frequentatore
Frequentatore
 
Messaggi: 141
Iscritto il: 12 nov 2008, 12:55

1
voti

[4] Re: [VBA] Verificare se mi trovo in LAN locale

Messaggioda Foto Utentealev » 13 gen 2023, 18:14

Come dicevo, non conosco VBA ma cercando in rete ho trovato qualche sito che tratta la questione MAC:

https://officetricks.com/get-mac-address-excel-vba/
https://excelhub.org/mac-address-lookup ... -vba-code/
https://gist.github.com/dck-jp/3310512

Non è detto che gli esempi linkati siano adeguati al tuo scenario ma qualche spunto potrebbero darlo
Avatar utente
Foto Utentealev
5.183 2 9 12
free expert
 
Messaggi: 5647
Iscritto il: 19 lug 2010, 14:38
Località: Altrove

0
voti

[5] Re: [VBA] Verificare se mi trovo in LAN locale

Messaggioda Foto UtenteBobo360 » 13 gen 2023, 18:21

Grazie mille, studio e vi faccio sapere.

:-) :-) :-)
Avatar utente
Foto UtenteBobo360
30 4
Frequentatore
Frequentatore
 
Messaggi: 141
Iscritto il: 12 nov 2008, 12:55

0
voti

[6] Re: [VBA] Verificare se mi trovo in LAN locale

Messaggioda Foto UtenteBobo360 » 13 gen 2023, 20:00

Volevo modificare il post sopra, ma mi sa che non si può fare dopo un poco di tempo.
I link che hai messo sopra, purtroppo servono per MAC address su tutti i dispositivi rete (anche virtuali) ma non posso cercare MAC nella rete LAN.

Ma mi hanno dato spunto e ho trovato forse qualcosa, provo e vi faccio sapere.

Grazie O_/ O_/ O_/
Avatar utente
Foto UtenteBobo360
30 4
Frequentatore
Frequentatore
 
Messaggi: 141
Iscritto il: 12 nov 2008, 12:55

0
voti

[7] Re: [VBA] Verificare se mi trovo in LAN locale

Messaggioda Foto Utentemicdisav » 13 gen 2023, 21:46

Credo si potrebbe pingare (o funzione equivalente) un certo numero di IP adress.
Gli IP adress (relative alle 2 reti) si mantengono in un file configurazione, poi andare di "if"
Avatar utente
Foto Utentemicdisav
271 7
Frequentatore
Frequentatore
 
Messaggi: 147
Iscritto il: 17 giu 2020, 16:40

0
voti

[8] Re: [VBA] Verificare se mi trovo in LAN locale

Messaggioda Foto Utentealev » 14 gen 2023, 8:38

Spesso, nelle LAN aziendali il ping non è abilitato sui dispositivi di rete

Inoltre, LAN di casa ed aziendale potrebbero anche avere il medesimo indirizzamento IP e questo renderebbe inefficace la funzione di verifica
Avatar utente
Foto Utentealev
5.183 2 9 12
free expert
 
Messaggi: 5647
Iscritto il: 19 lug 2010, 14:38
Località: Altrove

1
voti

[9] Re: [VBA] Verificare se mi trovo in LAN locale

Messaggioda Foto Utentemicdisav » 15 gen 2023, 0:03

Buonasera,
evitando gli IP address e ping ("meno invasivo" e molto + semplice!):
1) da VB, lanciare il cmd (tipo ShellExecute(...) con API32):

netsh interface show interface >quali_interfacce.txt

che produce il file output "quali_interfacce.txt" (dove vuoi tu, poi lo cancelli o mantieni traccia di ciò che hai fatto)

2) con VB leggi "quali_interfacce.txt"; dalla lettura contenuto colonna "Nome interfaccia", puoi risalire agevolmente alla postazione LAVORO o CASA del PC in cui ti trovi.
A tal punto, sai dove è il PC che invoca e, agisci di conseguenza tramite istruzioni VB.

2bis) se si ritiene opportuno; cioè incorrono ambiguità tra i 2 siti, si può rinominare l'interfaccia (da "connessioni di rete" di Windows)

Saluti, Michele.

Allego sia "quali_interfacce.txt" che i contenuti di 3 finestre di Windows attinenti:
CMD_NetshInterfaceShowInterface+connessioni.png

quali_interfacce.zip
(319 Byte) Scaricato 77 volte
Avatar utente
Foto Utentemicdisav
271 7
Frequentatore
Frequentatore
 
Messaggi: 147
Iscritto il: 17 giu 2020, 16:40

0
voti

[10] Re: [VBA] Verificare se mi trovo in LAN locale

Messaggioda Foto Utentealev » 15 gen 2023, 8:52

Non ho possibilità di verificare nell'arco di pochi giorni, ma mi risulta che il campo "Nome interfaccia" sia legato al PC/Notebook utilizzato e non alla LAN a cui si è collegati
Avatar utente
Foto Utentealev
5.183 2 9 12
free expert
 
Messaggi: 5647
Iscritto il: 19 lug 2010, 14:38
Località: Altrove

Prossimo

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti