Bat Dosyası İle Birden Fazla IP Adresini Engellemek

Halktan Biri

Dekan
Emektar
Katılım
30 Ekim 2016
Mesajlar
9,401
Reaksiyon puanı
9,165
Puanları
293
Birden fazla ip adresini C:\Windows\System32\drivers\etc konumundaki "hosts" dosyası üzerinden engellemem için bat komutları kullanmak istiyorum.
Örneğin 123.123.123 olan ip adresini engellemek için elimde şu kod var:
Kod:
**** /C /I "123.123.123" %WINDIR%\system32\drivers\etc\hosts > NUL 2>&1
IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^0.0.0.0 123.123.123>>%WINDIR%\System32\drivers\etc\hosts
Bu kod ile ip adresini host üzerinden engelleyebiliyorum fakat ben her bir ip adresi için bu kodu birçok kez kullanmak istemiyorum. Peki hosts dosyasından birden fazla ip adresi engellemenin bir yolu var mı?
@Ben Kenobi @errno
 
Son düzenleme:

Scalh

Doçent
Katılım
13 Ağustos 2017
Mesajlar
615
Reaksiyon puanı
273
Puanları
63
Merhaba mazur görün ancak sorunu anlayamadım. Tek kodla birçok IP adresini mi engellemek istiyorsunuz, yoksa otomatikleştirmek gibi bir şey mi?
 

Halktan Biri

Dekan
Emektar
Katılım
30 Ekim 2016
Mesajlar
9,401
Reaksiyon puanı
9,165
Puanları
293
@Scalh Hocam ilginiz için teşekkür ederim.
Ve ben bu amacımdan vazgeçtim.
Nedeni ise başarılı olamam. Denedim ama host dosyasından siteyi değilde sitenin ip adresini engelleyince siteye erişilebiliyordu nedense.
 

MrtAltg

Dekan
Emektar
Müdavim
Katılım
22 Şubat 2007
Mesajlar
9,834
Reaksiyon puanı
12,109
Puanları
2,958
Konu kilitleme kapatma yapmıyoruz ama :(
 

Scalh

Doçent
Katılım
13 Ağustos 2017
Mesajlar
615
Reaksiyon puanı
273
Puanları
63
Sorunu anlamadım ama yine de bir şeyler yazayım :)

set /p komutunu kullanabilirsiniz. Bunu kullanırsanız kodu baştan yazmazsınız sadece IP yazarsınız o halleder.

set /p "Address=> "
**** /C /I "%Address%" %WINDIR%\system32\drivers\etc\hosts > NUL 2>&1
IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^0.0.0.0 %Address%>>%WINDIR%\System32\drivers\etc\hosts

Böyle olabilir, tabi ki engellemek istediğiniz tüm IP'lerin başında 0.0.0.0 olduğunu varsayıyorum.

Ha yok, eğer bir IP'yi kontrol etsin, hosts dosyasında yoksa birden fazla IP girsin istiyorsanız, goto komutuyla halledersiniz.

Örneğin;

**** /C /I "123.123.123" %WINDIR%\system32\drivers\etc\hosts > NUL 2>&1
IF %ERRORLEVEL% NEQ 0 goto block

:block
ECHO %NEWLINE%^0.0.0.0 123.123.123>>%WINDIR%\System32\drivers\etc\hosts
ECHO %NEWLINE%^0.0.0.0 121.118.108>>%WINDIR%\System32\drivers\etc\hosts
pause

gibi örnekler verilebilir.
 

Scalh

Doçent
Katılım
13 Ağustos 2017
Mesajlar
615
Reaksiyon puanı
273
Puanları
63
Ops, konu sahibi cevaplamış bile :D Araştırdınız mı hocam site engellenmiyor mu hosts dosyasından?
 

Halktan Biri

Dekan
Emektar
Katılım
30 Ekim 2016
Mesajlar
9,401
Reaksiyon puanı
9,165
Puanları
293
Sorunu anlamadım ama yine de bir şeyler yazayım :)

set /p komutunu kullanabilirsiniz. Bunu kullanırsanız kodu baştan yazmazsınız sadece IP yazarsınız o halleder.

set /p "Address=> "
**** /C /I "%Address%" %WINDIR%\system32\drivers\etc\hosts > NUL 2>&1
IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^0.0.0.0 123.123.123>>%WINDIR%\System32\drivers\etc\hosts

Böyle olabilir, tabi ki engellemek istediğiniz tüm IP'lerin başında 0.0.0.0 olduğunu varsayıyorum.

Ha yok, eğer bir IP'yi kontrol etsin, hosts dosyasında yoksa birden fazla IP girsin istiyorsanız, goto komutuyla halledersiniz.

Örneğin;

**** /C /I "123.123.123" %WINDIR%\system32\drivers\etc\hosts > NUL 2>&1
IF %ERRORLEVEL% NEQ 0 goto block

:block
ECHO %NEWLINE%^0.0.0.0 123.123.123>>%WINDIR%\System32\drivers\etc\hosts
ECHO %NEWLINE%^0.0.0.0 121.118.108>>%WINDIR%\System32\drivers\etc\hosts
pause

gibi örnekler verilebilir.
Teşekkürler. Denedikten sonra geri dönüş yaparım inşallah. :)
--- Gönderi Güncellendi ---
Ops, konu sahibi cevaplamış bile :D Araştırdınız mı hocam site engellenmiyor mu hosts dosyasından?
İp adresini engelleyince olmuyordu ama site adını örneğin 0.0.0.0 abc123.com şeklinde engelleme yapınca siteyi engelliyor.
 

Scalh

Doçent
Katılım
13 Ağustos 2017
Mesajlar
615
Reaksiyon puanı
273
Puanları
63
Rica ederim hocam sıkıntı olursa yardım edebilirim. Kodu yanlış yazmıştım düzelttim bu arada.
 

errno

Doçent
Katılım
17 Temmuz 2016
Mesajlar
694
Reaksiyon puanı
567
Puanları
93
Teşekkürler. Denedikten sonra geri dönüş yaparım inşallah. :)
--- Gönderi Güncellendi ---

İp adresini engelleyince olmuyordu ama site adını örneğin 0.0.0.0 abc123.com şeklinde engelleme yapınca siteyi engelliyor.

Merhaba,

site adını yazdığınızda engelliyor ama komut satırından ping attığınız zaman sitenin adresine işe yarıyor mu ? Veya ip üzerinden herhangi bir komunikasyon sağlanabiliyor mu ? Şahsen yapılabilir diye düşünüyorum. Biraz detaylı bir konu bu. Örnek olarak host dosyası gibi değilde, programlama yönünde birşeyler yapılabilir gibi duruyor. Ancak bazı programlar biraz farklı yöntemler uyguluyor (Bakınız TeamViewer). Yani bi ip'yi engellediğinizde diğer bir ip'den bağlanıyor gibi.. Kendilerince bir çözüm yöntemi.

Sadece sorun site engelleme ise buna da bakılabilir ufak bir program yazılarak ?

Saygılarımla
 

errno

Doçent
Katılım
17 Temmuz 2016
Mesajlar
694
Reaksiyon puanı
567
Puanları
93
Merhaba,

herhangi bir araştırma yaptınız mı siz ? Örnek olarak, hedeflediğiniz bir engelleme yolu var mı yoksa sadece ilgili dosyaya ek yapılarak mı engelleme düşünüyorsunuz ? Eğer bildiğiniz veya istediğiniz bir yol varsa, isteklerinizle birlikte yazın. Konu üzerinde biraz konuşalım ona göre başlarım diye düşünüyorum.

Bunları sormamın nedeni; mesela host dosyanızda bir engelleme yapın ve ardından kullanıcınızdan çıkıp diğer bir kullanıcıya geçin. Engellediğiniz web adresine ulaşabiliyor musunuz ? Bu ayrıcalıklı bir durum gibi gözüküyor.


Saygılarımla
 

Halktan Biri

Dekan
Emektar
Katılım
30 Ekim 2016
Mesajlar
9,401
Reaksiyon puanı
9,165
Puanları
293
Merhaba,

herhangi bir araştırma yaptınız mı siz ? Örnek olarak, hedeflediğiniz bir engelleme yolu var mı yoksa sadece ilgili dosyaya ek yapılarak mı engelleme düşünüyorsunuz ? Eğer bildiğiniz veya istediğiniz bir yol varsa, isteklerinizle birlikte yazın. Konu üzerinde biraz konuşalım ona göre başlarım diye düşünüyorum.

Bunları sormamın nedeni; mesela host dosyanızda bir engelleme yapın ve ardından kullanıcınızdan çıkıp diğer bir kullanıcıya geçin. Engellediğiniz web adresine ulaşabiliyor musunuz ? Bu ayrıcalıklı bir durum gibi gözüküyor.


Saygılarımla
Hocam host dosyasından engellediğim siteye ulaşamıyorum.
Zaten olması gereken de bu.
Ama host dosyasında 0.0.0.0 ip adresi şeklinde (örneğin 0.0.0.0 192.xxx.xx şeklinde) ip adresini engellemeye çalışınca siteye erişebiliyorum.
Acaba bu normal bir durum mu?
 

errno

Doçent
Katılım
17 Temmuz 2016
Mesajlar
694
Reaksiyon puanı
567
Puanları
93
Merhaba,

derinlemesine olmasa da aklımda birkaç teori var. Konu üzerinde birlikte ve diğer arkadaşlarımız da fikir yürütürsek ortaya güzel birşey çıkabilir düşüncesindeyim. Ancak host dosyası işlemleri bana stabil gelmiyor.

Ben konu üzerinde Socket programlama tarafında durmak istiyorum. Yani işi daha stabil hale getirebiliriz. Herhangi bir çakışma riski, herhangi bir işlem karmaşası riski veya sistemle ilgili sorun risklerini de en aza indirgemiş oluruz düşüncesindeyim.

Ayrıca sorunuza gelince; host dosyasına ip aralığı verilebileceğini düşünmüyorum. Daha doğrusu host dosyasında yazılması istenen şekil buna izin vermiyor. @Scalh arkadaşımız da bahsetmiş. Dosya içinde zaten yazıyor yazım şeklinin nasıl olması gerektiğini. genelolarak bu konu hep Windows Firewall'a yönlendirilmiş durumda . Ayrıca araştırıyorum. Peki Firewall ayarlarınızdan engelleyemiyor musunuz ? Sanırım bunun birçok yolu olması lazım eğer windows firewall kullanıyorsanız..

Saygılarımla
 

Scalh

Doçent
Katılım
13 Ağustos 2017
Mesajlar
615
Reaksiyon puanı
273
Puanları
63
Katılıyorum güvenlik duvarı üstünden engelleme yöntemleri fazlaca vardır. @errno hocamızın dediği gibi daha dengeli ve sağlıklı olur. En azından hosts dosyasıyla uğraşan onlarca program varken bu bile bir risk.
 

afatsumlug97

Asistan
Katılım
25 Ocak 2016
Mesajlar
287
Reaksiyon puanı
103
Puanları
43
aynı ip adresi üzerine çok fazla site bulunabiliyor, o yüzden host adresinden kapatmak daha mantıklı gibi
G0ary3.jpg
 
Üst