C#으로 작성된 Windows 서비스에서 특정 URL을 동적으로 차단하고 싶습니다. 호스트 파일에 쓰면이 작업을 수행하고 싶지 않습니다.C#에서 동적으로 웹 사이트를 차단하는 방법은 무엇입니까?
예를 들어, 모든 브라우저에서 http://example.com
이라는 URL을 차단하고 싶지만 오전 7 시부 터 오전 8 시까 지 http://example.com/another
을 차단하십시오.
가능합니까, 어떻게해야합니까?
안부, 앤드류
C#으로 작성된 Windows 서비스에서 특정 URL을 동적으로 차단하고 싶습니다. 호스트 파일에 쓰면이 작업을 수행하고 싶지 않습니다.C#에서 동적으로 웹 사이트를 차단하는 방법은 무엇입니까?
예를 들어, 모든 브라우저에서 http://example.com
이라는 URL을 차단하고 싶지만 오전 7 시부 터 오전 8 시까 지 http://example.com/another
을 차단하십시오.
가능합니까, 어떻게해야합니까?
안부, 앤드류
당신은 Windows Firewall API 사용할 수 있습니다. John Cole의 기사 Managed classes to view/manipulate the Windows Firewall을 참조하십시오.
좋은 아이디어. 하지만 사용자가 방화벽을 끄면 나는 생각하지 않을 것이다. 또한 타사 방화벽을 사용할 때 작동하지 않습니다. 나는 어떤 종류의 프록시를 사용할 수 있다고 생각했다. – Andrew
이제 블록 개념을 보여줍니다. Google 웹 사이트. 이 솔루션이 도움이되기를 바랍니다.
private void BlockWebsite_Click(object sender, EventArgs e)
{
String path = @"C:\Windows\System32\drivers\etc\hosts";
StreamWriter sw = new StreamWriter(path, true);
String sitetoblock = "\n 127.0.0.1 google.com";
sw.Write(sitetoblock);
sw.Close();
MessageBox.Show("Site Blocked");
}
}
OP는'/ etc/hosts' 파일에 쓰지 않는 솔루션을 요청했습니다. 당신이 이것을 주장한다면, OP의 요청에도 불구하고 사용해야 만하는 이유를 제공하십시오. – glen3b
모든 브라우저에서 작동하려면 호스트에 쓰는 것이 가장 좋습니다. –
[RFC-2606] (http://www.faqs.org/rfcs/rfc2606.html) –
에 지정된 도메인 이름 예를 들어'example.com'을 사용하십시오. 호스트에 도메인 이름을 추가하십시오 '파일은 정확한 이름 해석만을 차단합니다. 프로세스는 여전히 IP 주소를 사용하여 사이트에 액세스 할 수 있습니다. – sinelaw