D A S E N Y
پورت در فایروال در سی شارپ

با سلام خدمت تمامی علاقه مندان به برنامه نویسی. در این آمورش قصد داریم شیوه باز کردن پورت در فایروال ویندوز را در سی شارپ آموزش ببینیم.

در برخی موارد پیش می آید که برنامه ما نیاز دارد از یک پورت استفاده کند. برای مثال ما یک برنامه چت نوشته ایم که باید پیام های ما را ارسال کند و پیام هایی که دیگران می دهند را دریافت کند و نمایش دهد. یا مثلا برنامه برای انتقال فایل بین دو سیستم ساخته ایم. در همه این موارد و موارد مشابه برنامه ما باید یک پورت در فایروال ویندوز ثبت کند.

ما می توانیم از کاربر درخواست کنیم که یک پورت برای برنامه ما باز کند. ولی این نکته را در نظر بگیرید که بسیاری از افراد دانش کمی از کامپیوتر دارند. زمانی که ما این درخواست را از آنها می کنیم، یا بلد نیستند این کار را انجام دهند و یا اینکه به محض برخود با کلمه فایروال می ترسند که برنامه ما قصد خرابکاری داشته باشد. در هر صورت امکان حذف برنامه ما بسیار بالا است. در نتیجه بهتر است خودمان این کار را انجام دهیم.

باز کردن پورت در فایروال در سی شارپ

برای اینکه برنامه ما بتواند در فایروال پورتی به ثبت برساند باید سه مرحله زیر را طی کنیم.

1- اجرای برنامه به صورت Run as administrator

2- افزودن کتابخانه FirewallAPI.dll به برنامه

3- نوشتن کد های مربوطه

اجرا برنامه به صورت Run as administrator

برای اینکه برنامه ما به فایروال دسترسی داشته باشد، باید تعیین کنیم که به صورت administrator اجرا شود. برای این کار در زبانه Solution Explorer روی نام برنامه خودتان کلیک راست کرده و از بخش Add گزینه …New Item را انتخاب کنید.

افزودن Application Manifest File

سپس از پنجره باز شده گزینه Application Manifest File را انتخاب و روی Add کلیک کنید.

افزودن Application Manifest File

سپس در این فایل عبارت asInvoker را با requireAdministrator جایگزین کنید.

اجرای برنامه به صورت Administrator

افزودن کتابخانه FirewallAPI.dll به برنامه

ما برای کار با فایروال به یک کتابخانه نیاز داریم. برای اضافه کردن این کتابخانه به برنامه از زبانه Solution Explorer روی References کلیک راست کرده و گزینه …Add Reference را انتخاب کنید.

افزودن کتابخانه در سی شارپ

سپس در پنجره زیر وارد بخش Browse شوید و گزینه …Browse را بزنید.

افزودن کتابخانه در سی شارپ

در پنجره باز شده به مسیر زیر روید و فایل FirewallAPI.dll را انتخاب کرده و در تمامی پنجره های باز شده OK را بزنید.

C:\Windows\System32

نوشتن کدهای مربوطه

برای باز کردن پورت در فایروال در سی شارپ پس از گذراندن مراحل بالا کافیست کدهای زیر در هر جای برنامه خود که می خواهید پورت مورد نظر باز شود قرار دهید.

Type tNetFwPolicy2 = Type.GetTypeFromProgID( “HNetCfg.FwPolicy2” );
INetFwPolicy2 fwPolicy2 = ( INetFwPolicy2 )Activator.CreateInstance( tNetFwPolicy2 );
var currentProfiles = fwPolicy2.CurrentProfileTypes;

INetFwRule2 inboundRule =
( INetFwRule2 )Activator.CreateInstance( Type.GetTypeFromProgID( “HNetCfg.FWRule” ));
inboundRule.Enabled = true;

inboundRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;

inboundRule.Protocol = 6;

inboundRule.LocalPorts = “8080”;

inboundRule.Name = “RuleName”;

inboundRule.Profiles = currentProfiles;

INetFwPolicy2 firewallPolicy =
( INetFwPolicy2 )Activator.CreateInstance(Type.GetTypeFromProgID( “HNetCfg.FwPolicy2” ));
firewallPolicy.Rules.Add( inboundRule );

تنها تغییراتی که لازم است در کد بالا انجام دهید قرار دادن پورت موردنظر خود به جای 8080 و قراردادن نام دلخواه خود به جای RuleName است.

فیلم آموزش باز کردن پورت در فایروال در سی شارپ

آموزش باز کردن پورت در فایروال در زبان سی شارپ به پایان رسید. لطفا نظرات، پیشنهادات و انتقادات خود را برای ما بنویسید. همچنین اگر سوالی دارید می توانید در بخش نظرات بازگو کنید. ما در اسرع وقت پاسخ گوی شما خواهیم بود.

مطالب اخیر

پیام بگذارید