Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
  Condividi: Facebook Twitter
file batch per blocco Ip
#1
salve a tutti
come ho gia detto in altre discussioni, ho il problema di dover snellire il traffico dati.
Pertanto sono stato costretto a farmi un piccolo software, 
al fine di bloccare tutto quel traffico inutile e non richiesto, della rete.


Come ho gia detto, per il monitoraggio della connessione uso Glasswire nella versione gratuita (ottimo software).
Da cui ottengo facilmente il nome dell'Host, l'IP ed il nome del processo che lo ha contattato.

Come firewall uso quello di Windows.
Per attivarlo mi sono fatto un file BAT in cui  all'interno c'e scritto
WF.msc
dopo ho creato un collegamento a questo file bat, di modo che con un solo click, lo avvio con i diritti di amministratore
(click tasto destro sul collegamento - proprietà - collegamento - avanzate - esegui come amministratore)

Una volta aperte le impostazioni avanzate del firewall di windows, le modifiche sono un po macchinose. 

Pertanto mi sono fatto un piccolo software batch, con il quale blocco un ip, nel firewall di windows, semplicemente mettendo il nome della regola e  l'indirizzo IP (dati che prelevo agevolmente da Glasswire), facendo un facile past e copy.

le righe di codice all'interno sono

Codice:
@ECHO OFF
@SETLOCAL EnableDelayedExpansion
@CD %~dp0

::Check for Admin rights; Exit if no rights
NET SESSION >nul 2>&1
IF %ERRORLEVEL% EQU 0 (goto :BEGIN) ELSE (Echo ERROR: devi avviare il file come amministratore. && pause && goto :eof)

:BEGIN
::Ask for rule name & port
set /p RULE_NAME=Quale nome alla nuopva regola vuoi dare, a cui successivamente aggiungere il blocco IP:
cls
set /p NEW_PORT=Quali IP vuoi bloccare nella nuova regola creata:"%RULE_NAME%":

::Get the LocalPort to Variable
netsh advfirewall firewall add rule name="%RULE_NAME%" dir=in action=block remoteip="%NEW_PORT%"
netsh advfirewall firewall add rule name="%RULE_NAME%" dir=out action=block remoteip="%NEW_PORT%"

WF.msc
pause


 
(anche qui ho usato il trucco del collegamento, per i diritti di amministrazione, di modo da avviarlo con un solo click)

Nonostante ho risolto il mio problema, vorrei ulteriormente migliorarlo, di modo che quando eseguo il file bat in oggetto
mi trasferisca il valore delle ultime 2 stringhe in un altro file bat, per registrarle.

Ad esempio quando quanto faccio partire il file bat in oggetto
mi chiede per primo la regola da aggiungere, 
se scrivo ad esempio "Amazon"
poi mi chiede il numero di ip da bloccare in quella regola 
e scrivo l'ip di Amazon, preso da Glasswire, che e' ad esempio 172.64.145.85, 

pertanto le due ultime stringhe diventeranno:

Codice:
netsh advfirewall firewall add rule name="Amazon" dir=in action=block remoteip=172.64.145.85

netsh advfirewall firewall add rule name="Amazon" dir=out action=block remoteip=172.64.145.85

esse saranno eseguite
e l'ip sara bloccato
e poi sara avviata l'interfaccia del firewall, che mostra le due nuove regole in entrata ed uscita, con il relativo  l'IP bloccato.

Ma io avrei bisogno di copiare quelle righe in un altro file bat, da eseguire successivamente, nel caso devo ripristinare il firewall con il comando 


Codice:
netsh advfirewall reset


Quest'ultimo comando ripristina il firewall nelle condizioni originali eliminando tutte le modifiche fatte.
Questa operazione serve quando internet non funziona piu correttamente, perche si sono andati a bloccare degli IP, che non dovevano essere bloccati.
Ma quando il firewall viene resettato, si perdono tutti gli indirizzi precedentemente registrati nelle rispettive regole e si perde il bambino insieme all'acqua sporca.

Avere un secondo file bat compiltato in automatico, significa semplicemente aprirlo, eliminare l'IP che non doveva essere boccato
e poi eseguirlo, 
e saranno facilmente ripristinate tutte le regole, tranne quella errata.

Conoscete un modo per farlo?
Cita messaggio
#2
Ti ho sistemato il messaggio, quando posti codici usa il tasto code(<>).
Se vedi problemi di formattazione quando copi/incolli poi seleziona il testo e usa il tasto per rimuovere formattazione (A-).
I am a patient boy
I wait, I wait, I wait, I wait
My time's like water down a drain....

Comprendi?
Cita messaggio
#3
(18/09/2022, 12:13)rage75 Ha scritto: Ti ho sistemato il messaggio, quando posti codici usa il tasto code(<>).
Se vedi problemi di formattazione quando copi/incolli poi seleziona il testo e usa il tasto per rimuovere formattazione (A-).

Grazie adesso ho capito, non lo sapevo.


Ritornando all'oggetto del topic, se scrivo ad esempio un file bat con questa linea di codice

Codice:
ipconfig /all >>c:\lista.txt

il comando   >>    apre il file    c:\lista.txt   e vi accoda l'output del comando      ipconfig /all


Io avrei bisogno della stessa cosa, ma non relativamente all'output del comando ipconfig /all ,
bensi a questa riga di codice

Codice:
netsh advfirewall firewall add rule name="Amazon" dir=in action=block remoteip=172.64.145.85



Aprendo un prompt con i diritti di amministrazione e digitando ipconfig /all
viene stampata a schermo la Configurazione IP di Windows

Mentre digitando
netsh advfirewall firewall add rule name="Amazon" dir=in action=block remoteip=172.64.145.85
viene modificato il firewall di windows, in cui viene aggiunta una nuova regola in entrata, chiamata Amazon, che blocca l'IP 172.64.145.85

svolgono delle operazioni quasi analoghe, ma il comando    >>     nel secondo caso non funziona
ed io avrei bisogno del comando corretto che possa sostituirlo, per svolgere la stessa operazione
Cita messaggio
#4
Ci sono riuscito.

Se qualcuno ne fosse interessato vi lascio sotto il codice Dos, per una comoda e potente interfaccia.
Potete liberarvi da qualsiasi firewall, perché a detta di tanti esperti, quello originale windows e' il migliore, pero e' macchinoso da utilizzare, ma con questa interfaccia diventa facile.


Codice:
@echo off
Net session >nul 2>&1 || (PowerShell start -verb runas '%~0' &exit /b)
mkdir %USERPROFILE%\Desktop\bloccoIP\IP_bloccati
:LOOP
echo off
cls
set /p RULE_NAME=Quale nome vuoi dare alla nuova regola?
cls
set /p IP_block=Quale IP vuoi bloccare nella nuova regola del firewall "%RULE_NAME%"? (attenzione devi scrivere correttamente il formato IP)=:
echo netsh advfirewall firewall add rule name="%RULE_NAME%" dir=in action=block remoteip=%IP_block% >> %USERPROFILE%\Desktop\bloccoIP\IP_bloccati\IP_bloccati.bat
echo netsh advfirewall firewall add rule name="%RULE_NAME%" dir=out  action=block remoteip=%IP_block% >> %USERPROFILE%\Desktop\bloccoIP\IP_bloccati\IP_bloccati.bat
netsh advfirewall firewall add rule name="%RULE_NAME%" dir=in action=block remoteip="%IP_block%"
netsh advfirewall firewall add rule name="%RULE_NAME%" dir=out action=block remoteip="%IP_block%"
:RIP
@ECHO off
cls
ECHO digita 1  per bloccare un altro ip
ECHO digita 2  per aprire l'interfaccia firewall avanzata (quando l'interfaccia sara chiusa, potrai effettuare altre scelte)
ECHO digita 3  per reimpostare il firewall nelle condizioni originali
ECHO digita 4  per reimpostare tutti gli IP bloccati in precedenza
ECHO digita 5  per uscire
ECHO ______________________________________________________________________________________________________________________
set /p choice=Inserisci una scelta:
if '%choice%'=='1' goto LOOP
if '%choice%'=='2' goto interfaccia firewall
if '%choice%'=='3' goto reset firewall
if '%choice%'=='4' goto reimposta IP
if '%choice%'=='5' goto exit
:interfaccia firewall
WF.msc
goto RIP
:reset firewall
netsh advfirewall reset
cls
Echo il firewall e' stato reimpostato & pause
goto RIP
:reimposta IP
start "" "%USERPROFILE%\Desktop\bloccoIP\IP_bloccati\IP_bloccati.bat"
goto RIP
:exit
exit


Quindi per chi ne fosse interessato:
1) creare una cartella sul desktop, di nome bloccoIP (si puo anche cambiare percorso e nome ma bisogna modificare il codice dos);

2) entrare nella cartella suddetta e con il tasto destro, create un nuovo documento di testo. Esso avrà la estensione txt, ma dovete cambiarla in bat. Potete assegnarli qualsiasi nome di vostro gradimento;

3) copiare all'interno di questo file, il codice sopra riportato. Salvate e chiudete e rinominatelo in bat.

4) cliccate sul file e avviatelo. Non c'e bisogno di farlo partire con i diritti di amministratore, perche c'e dentro il codice per  auto avviarsi con i dirittni di amministratore.

5) andate su questo link e scaricate Glasswire se non lo avete ancora fatto https://www.glasswire.com/download

6) una volta avviato Glasswire potete monitorare, facilmente tutto quanto accade nel traffico dati del vostro PC.
Avviatelo e qualora c'e un ip che non vi piace (ce ne sono una marea che si collegano al vostro PC senza ragioni) in alto a sinistra potete clikkare il tasto applicazioni e poi un po' più giù sul bordo in alto a sinistra, potete selezionare ogni singolo processo ed osservare.  
Dopo andate in basso e partendo da sinistra ci sono 4 caselle. L'ultima vi da la possibilità di controllare tutti gli host che si sono collegati a quel processo, la loro ubicazione ed il loro numero IP.
Se ad esempio ci fosse un host che non vi piace, tipo  telegram.im, potete vedere il suo ip e dove ci sono i 3 puntini, potete copiarlo.

7) adesso ritornate nella applicazione DOS, che una volta avviata, vi da 5 possibilità di scelta, 
- la prima e' quella che crea una regola nel firewall per il blocco di questo ip. 
quindi digitate il tasto 1, date il nome alla regola ad esempio il nome dell'host che volete bloccare, clikkate invio e con il tasto destro incollate l'Ip.
Adesso avrete bloccato questo IP, sia in entrata che in uscita.

- se clikkate 2  nella interfaccia dos, aprirete la interfaccia avanzata del firewall e vedrete una nuova regola nelle connessioni in entrata ed in uscita, chiamata telegram.im. Clikkate 2 volte apritela e nella scheda ambito, troverete il vostro ip bloccato.

8)potete ripetere la operazione quante volte volete, ma se ad esempio volete ripristinare il firewall come in origine, dovete digitare il tasto 3 nella interfaccia dos,
e sbloccherà tutti gli ip che avete bloccato e lo riporterà nelle condizioni originali.
Se invece li volete bloccare nuovamente, dovete digitare il tasto 4 e saranno ripristinati in automatico tutte le regole e gli IP precedentemente bloccati.

Il software crea una cartella interna alla cartella bloccoIP, chiamata IP_bloccati, all'interno vi e' un file bat, che potete aprire e trovarci tutti gli Ip che avete precedentemente bloccato.
Quindi potete eliminare quelli che non volete vengano ri-bloccati e lasciare solo quelli che volete bloccare.

In questo modo potrete ripulire facilmente tutto il vostro traffico dati da connessioni inutili, che vi occupano banda.
Pertanto anche la vostra connessione internet funzionerà in maniera piu veloce, oltre che piu sicura.
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 2 Ospite(i)