검색결과 리스트
글
Detect the Firewall/Antivirus Product
(설치된 방화벽/안티바이러스 확인하기)
Intro
네트워크 프로그램을 개발하다보면, 항상 문제가 되는 것이 바로 '방화벽' 입니다.
우리가 아는 것 이상으로 사용자들은 방화벽에 대해서 모르는 것 같습니다.
대부분 잘 되던 프로그램이 다른 PC 에서 안된다면, 1차적으로 확인해야 하는 것이 바로 이것이죠.
이런 이유로 프로그램 시작시 혹은, 네트워크 문제가 발생하였을 경우 관련된 정보를 사용자에게 제공하는 것이 중요합니다.
"V3 의 방화벽 설정을 확인하십시오" 라든지.. 뭐 그런~
이번 시간에는 3rd-Party의 방화벽, 그리고 백신 프로그램의 설치 유무를 확인하는 방벙에 대해서 알아보도록 하겠습니다.
자동으로 윈도우 방화벽의 예외리스트에 포트를 등록하는 방법은 이전 포스트를 참고하시기 바랍니다.
http://crystalcube.co.kr/entry/윈도우-방화벽-해제하는-방법
Contents
눈치가 빠르신 분들은 어떤 방식으로 이 문제를 해결 할 수 있을지 아실거라고 생각합니다.
바로 WMI 를 사용하는 것입니다. :)
코드가 간단하므로, 별도의 설명은 생략하도록 하겠습니다.
Status 나 기타 정보는 구글링 해 보시기 바랍니다.
Code
※ 필요한 참조
- System.Management.dll
※ 필요한 NameSpace
- System.Management
[AntiVirus Product]
private void DetectAntivirusProduct() {
List<ManagementObject> list = new List<ManagementObject>();
ManagementObjectSearcher search = new ManagementObjectSearcher("SELECT * FROM AntiVirusProduct");
// SecurityCenter
search.Scope = new ManagementScope(@"\ROOT\SecurityCenter");
foreach (ManagementObject virusProduct in search.Get()) {
list.Add(virusProduct);
}
// SecurityCenter2
search.Scope = new ManagementScope(@"\ROOT\SecurityCenter2");
foreach (ManagementObject virusProduct in search.Get()) {
list.Add(virusProduct);
}
// Print All Properties
foreach(ManagementObject obj in list) {
foreach (PropertyData prop in obj.Properties) {
Console.WriteLine(prop.Name + " : " + obj[prop.Name].ToString());
}
}
}
[Firewall Product]
private void DetectFirewallProduct() {
List<ManagementObject> list = new List<ManagementObject>();
ManagementObjectSearcher search = new ManagementObjectSearcher("SELECT * FROM FirewallProduct");
// SecurityCenter
search.Scope = new ManagementScope(@"\ROOT\SecurityCenter");
foreach (ManagementObject virusProduct in search.Get()) {
list.Add(virusProduct);
}
// SecurityCenter2
search.Scope = new ManagementScope(@"\ROOT\SecurityCenter2");
foreach (ManagementObject virusProduct in search.Get()) {
list.Add(virusProduct);
}
// Print All Properties
foreach (ManagementObject obj in list) {
foreach (PropertyData prop in obj.Properties) {
Console.WriteLine(prop.Name + " : " + obj[prop.Name].ToString());
}
}
}
'Microsoft > C#' 카테고리의 다른 글
MessageQueue 구현하기 (3) | 2011.05.08 |
---|---|
JSON 과 AJAX 그리고 C# (0) | 2011.04.25 |
베터리 상태 체크하기 (0) | 2011.02.16 |
HttpWebRequest 로 FileUpload 시에 주의할 점 (2) | 2011.02.07 |
Global Hooking in .NET (1) | 2011.01.24 |
RECENT COMMENT