فرهاد خانلری
کارشناس ارشد شبکه مایکروسافت

آموزش انجام تنظیمات کارت شبکه ویندوز با دستورات و اسکریپت

یکی از مواردی که در این سایت مطرح میشود تجربیات و مشکلاتی هست که در طول روزمره باآن برخورد میکنیم نمیدونم تا به حال به این مشکل برخوردید یا نه اینکه DHCP یک مودمی نتونه هوشمندانه IP ها رو تخصیص بده و بعضاً پیش میاد که یک IP رو به دو سیستم بده و مشکلاتی رو برای ما به وجود میاره

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

و شبکه مختل میشه یکی از ساده ترین راه های رفع این مشکل البته یکی از چندین و چند راه اینه که IP سیستم ها رو به صورت دستی بدیم تا این مشکل به وجود نیاد اما اگر همون لپتاپ خواست وارد شبکه دیگه ای شه چطور یا اینکه هر روز میخواهید لپتاپ رو به منزل و محل کار بیارید و هر سری این تنظیمات نیاز به تغییر دارن .

به هر حال با ما در tosinso.com باشید جهت ساده سازی تنظیمات IP با یک کلیک. همونطور که میدونید IP یکی از کاربردی ترین و مهمترین تنظیمات و مقدمات شبکه هست ، اما حتماً دوستان تا به حال خیلی خیلی IP تغییر دادن و یا بر حسب نیازشون مدام با این تغییر ها خواستن شبکشون رو عوض کنند

و یا شاید کسانی باشن که باید آی پی هاشون رو در شرکت یه چیزی بزارن و در منزلشون یه چیز دیگه و اینکه هی برن تو Network Connection و IP Address و Subnet Mask و Default Gateway و DNS Server هاشون رو تغییر بدن خسته شدند .اما راه کاری برای شما هست راه کاری به نام دستور Netsh این دستور یک دستور بسیار مهم و البته جذاب و کاربردی تنظیمات شبکه را به صورت کامل کنترل و در صورت نیاز ، تغییر میدهد

البته با تنظیماتی که ما بهش میگیم البته این دستور شامل دستورات زیادی است و در این مطلب فقط با یکی از کاربرد هاش آشنا میشیم. من این دستورات رو در فایل Notepad تایپ کردم و در نهایت اونها رو با پسوندbat که به batch file معروف هستند ذخیره کردم که به صورت یه فایل اجرایی در بیان و با یه دابل کلیک کردن کل تنظیمات رو تغییر میدیم

@echo off
netsh interface ip set address name="Wireless Network Connection" static 192.168.1.120 255.255.255.0 192.168.1.1
netsh interface ip set dns "Wireless Network Connection" static 192.168.1.1 
netsh interface ip add dns name="Wireless Network Connection" 4.2.2.2 index=2

خطوط بالا با هم در یک فایل bat باعث میشه تنظیمات کارت شبکه ما به شکل زیر در بیاد

تغییر اتوماتیک IP


قبل از اینکه کد ها رو در Notepad داشته باشید باید به Network connection خودتون یه سری بزنید و ببینید تنظیمات کدوم یکی از interface ها ر میخواهید تغییر بدید من در این مثال تنظیمات رو روی Wireless خودم انجام دادم اما اگر با کابل متصل شدید میتونید Local Area Connection رو به جای Wireless Network Connection تایپ کنید.

خط اول که زیاد در ماهیت کار تاثیر نداره در صورت استفاده دستورات نمایش داده نخواهند شد و اگر از دستور echo on استفاده کنیم دستوراتی که در محیط command prompt اجرا میشوند نمایش داده می شوند.خط دوم در کد های فوق باعث شد که IP Address در شبکه وای فای من به 192.168.1.120 و SubnetMask نیز به 255.255.255.0 و در نهایت Gateway به 192.168.1.1 تغییر کنه .

خط سوم و چهارم مربوط به DNS ها هست که به ترتیب در کارت شبکه به ثبت میرسه.کد های زیر نیز باعث میشه کارت شبکه ما از حالت IP دستی حارج شده و از DHCP آی پی ها رو دریافت کنه

@echo off
netsh interface ip set address name="Wireless Network Connection" source=dhcp
netsh interface ip set dns "Wireless Network Connection" dhcp

خط های بالا دیگه نیازی به توضیح نداره و خیلی واضح هست

دستور netsh برای تنظیمات IP



خب گاهی هم نیاز داریم IP را خودمان وارد کنیم اما نه اینکه مدام وارد کارت شبکه شویم و تنظیمات رو Set کنیم ولی با همین دستور netsh میتوانیم این کار را مرحله به مرحله توسط اسکریپت زیر انجام بدیم پس میتوانید کد زیر را در Notepad کپی کرده و در یک فایل با پسوند bat ذخیره کنید

Script Beginning:

@echo off
echo Choose:
echo [A] Set Static IP
echo [B] Set DHCP
echo.
:choice
SET /P C=[A,B]?
for %%? in (A) do if /I "%C%"=="%%?" goto A
for %%? in (B) do if /I "%C%"=="%%?" goto B
goto choice
:A
@echo off
echo "Please enter Static IP Address Information"
echo "Static IP Address:"
set /p IP_Addr=

echo "Default Gateway:"
set /p D_Gate=

echo "Subnet Mask:"
set /p Sub_Mask=

echo "DNS Server preferred:"
set /p DNS1=

echo "DNS Server Alternate:"
set /p DNS2=

echo "Setting Static IP Information"
netsh interface ip set address "Wireless Network Connection" static %IP_Addr% %Sub_Mask% %D_Gate%
netsh interface ip set dns "Wireless Network Connection" static %DNS1%
netsh interface ip add dns name="Wireless Network Connection" %DNS2% index=2

netsh int ip show config
pause
goto end

:B
@ECHO OFF
ECHO Resetting IP Address and Subnet Mask For DHCP
netsh int ip set address name = "Wireless Network Connection" source = dhcp
netsh interface ip set dns "Wireless Network Connection" dhcp

ipconfig /renew

ECHO Here are the new settings for %computername%:
netsh int ip show config

pause
goto end
:end

Script END!

ذر کد های بالا از متغیر هایی استفاده شده که در خطوط پایین تر این متغیر ها با عدد هایی که به عنوان IP وارد میکنیم پر میشود در این اسکریپت در همان بدو اجرا میتوان کد را به دو صورت پیش برد یکی DHCP و یکی تنظیمات IP همانند تصاویر زیر:

تنظیمات خودکار IP


رفع مشکل وارد کردن IP و خرابی DHCP


فعال یا غیر فعال کردن کارت شبکه

جهت غیر فعال کردن کارت شبکه

netsh interface set interface name="Local Area Connection" admin=disabled

جهت فعال کردن کارت شبکه

netsh interface set interface name="Local Area Connection" admin=enabled

جهت دیدن interface کارت شبکه

دستور netsh interface show interface را در cmd وارد کنید تا با خروجی زیر روبرو شوید

دیدن interface کارت شبکه

اینکه ما بدونیم interface چیه و با چه نامی ثبت شده در دستورات netsh بسیار حائز اهمیت هست و شما هم در آموزش قبلی و هم این آموزش باید از interface استفاده کنید.

جهت تغییر IP دوم در کارت شبکه

طبق تصاویر زیر شما میتونید ip دوم برای کارت شبکه خودتون وارد کنید که این بخش رو به دو صورت اتوماتیک و دستی خدمتتون میگم .

وب سایت توسینسو
وب سایت توسینسو
وب سایت توسینسو
وب سایت توسینسو

در حالت اتوماتیک میتونید از کد زیر استفاده کنید:

شکل کلی دستور :

FOR /L %variable IN (start,step,end) DO command

مثال:

FOR /L %A IN (10,1,20) DO netsh interface ipv4 add address “Local Area Connection” 192.168.1.%A 255.255.255.0

خروجی:

وب سایت توسینسو

همونطور که ملاحظه میکنید در این مثال start = 10 هست و Step =1 یعنی یکی یکی آی پی اضافه میشه و end =20 هست یعنی از 10 تا 20 میره جلو . ولی اگر میخواهید اتوماتیک این آی پی ها اضافه نشوند میتونید از خط زیر در cmd استفاده کنید

netsh interface ipv4 add address "Local Area Connection" 192.168.1.33 255.255.255.0

پس از این خط دستور میبینید که به کارت شبکه تون ip و subnet mask اضافه شده و البته بدیهی است پس از subnet mask اگر آی پی دیگری قرار داشت به صورت اتوماتیک در gate way قرار میگرفت.

جهت تغییر DNS های کارت شبکه

برای DNS primary :

netsh interface ip set dns name="Local Area Connection" static 192.9.9.3

برای DNS secondary

netsh interface ip add dns name="Local Area Connection" 8.8.8.8 index=2

و اما اضافه کردن در کارت شبکه به صورت شکل کلی ، شکل کلی دستور

 netsh interface ipv4 add dnsserver "Network Interface Name" dns.server.ip index=1(for primary)2(for secondary)

مثال

netsh interface ipv4 add dnsserver "Local Area Connection" 8.8.8.8 index=1

اضافه کردن آی پی WINS توسط CMD

اگر میخواهید توسط دستور netsh در WINS آی پی اضافه کنید کد زیر را میتوانید در command prompt بنویسید

وب سایت توسینسو
netsh interface ip set wins name="Local Area Connection" source=static addr=10.0.1.11

فرهاد خانلری
فرهاد خانلری

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

فرهاد خانلری ، مدرس شبکه و برنامه نویسی مبتنی بر زیرساخت های مایکروسافت ، سابقه فعالیت در موسسات و مراکز دولتی در قالب پروژه ، مشاوره و تدریس ، برنامه نویسی ++C ، سی شارپ و دات نت ، متخصص و مدرس شبکه های مبتنی بر سیستم عاملهای مایکروسافت و سرویس های مربوطه ، سخت افزار و ...

نظرات