윈도우 해외 IP 차단하기
우선은 아래 링크에서 국가별IP목록이 있는 파일을 받아줍니다.
최신버전 다운로드는 아래링크 클릭
위 링크에서 GeoIP-legacy.csv.gz 파일을 받아 압축을 풀어 사용하면 됩니다,
파워쉘 스크립트 작성
아래의 내용에서 차단하기를 원하는 국가와 GeoIPCountryWhois.csv파일 경로를 바꾸신 후 문서 편집기로 작성 후
GeoIPCountryWhois.csv파일이 있는곳에 .ps1파일로 저장하면 됩니다.
코드는 아래 PS1 파일을 받으세요.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#############Config#################
$countryCode="CN" #차단할 나라의 CountryCode
#$geoIPcvsPath="c:\GeoIPCountryWhois.csv"
$geoIPcvsPath="\GeoIPCountryWhois.csv"
$ruleName="blockCountry"
#############Config#################
$geoData=Import-Csv $geoIPcvsPath -header sIP, eIP, start, end, cc, cn | where-object {$_.cc –eq $countryCode}
$geoDataTotal=$geoData.Count
$remoteIP=""
###### 룰이 있는 지 체크 ########
function ruleExistsChk ($ruleName)
{
$fw=New-object -comObject HNetCfg.FwPolicy2; # http://blogs.technet.com/b/jamesone/archive/2009/02/18/how-to-manage-the-windows-firewall-settings-with-powershell.aspx
$RuleCHK=$fw.rules | where-object {$_.name –eq $ruleName}
if(!$RuleCHK){
#$deny_rule_name + " 룰이 생성되어 있지 않습니다."; exit;
netsh advfirewall firewall add rule name="$ruleName" localip=any dir=in action=block profile="any" interfacetype="any"
}
}
###### 룰이 있는 지 체크 ########
$count=1
foreach ($geoIP in $geoData)
{
#$remoteIP+=@($geoIP.sIP+"-"+$geoIP.eIP+",") #배열로 저장.
$remoteIP+=$geoIP.sIP+"-"+$geoIP.eIP+","
#remoteAddr가 한개의 룰에 약 300개 이상이면 등록이 안됨. 안전하게 200으로 설정.
if(($count%200) -eq 0)
{
$makeRuleName=$ruleName+$countryCode+$count
ruleExistsChk($makeRuleName)
netsh advfirewall firewall set rule name=$makeRuleName new remoteip="$remoteIP"
$remoteIP=""
}elseif($geoDataTotal -eq $count){
$makeRuleName=$ruleName+$countryCode+$count
ruleExistsChk($makeRuleName)
netsh advfirewall firewall set rule name=$makeRuleName new remoteip="$remoteIP"
$remoteIP=""
}
$count++
}
|
cs |
실행은 시작버튼을 누른 후 검색창에 PowerShell 이라고 친 후 뜨는 Windows Powershell을 마우스 우버튼으로 클릭후
관리자 권한으로 실행하면 됩니다.
스크립트 오류시 PowerShell 를 실행한 후
Set-ExecutionPolicy Unrestricted 명령을 실행하고
.\GeoIPCountryWhois.ps1 를 실행 해주세요.
오류관련 참고 사이트: https://samsons.tistory.com/16
Set-ExecutionPolicy Unrestricted
ExecutionPolicy <-- 현재상태확인
Unrestricted <-- 모든 스크립트 허용 상태.
ExecutionPolicy <-- 현재상태확인
Unrestricted <-- 모든 스크립트 허용 상태.
참고 URL : http://blog.netchk.net/?p=1427
제 블로그의 내용이 도움이 되셨나요?
여러분의 공감과 댓글이 큰 힘이됩니다 :)
▼▼▼▼▼▼▼▼▼▼▼