تغيير الأسماء بشكل برمجي في Windows TCP / IP
-
16-09-2019 - |
سؤال
أنا أقوم ببناء تطبيق VPN حيث أحتاج إلى تعيين خادم DNS برمجيا. أنا أتغير NameServer
المعلمة في السجل (في HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
) لإعداد خادم الاسم إلى قائمة الإدخالات الحالية. بمجرد القيام بذلك، إذا حاولت البحث عن اسم مضيف باستخدام nslookup
, ، يعمل بشكل جيد، ولكن ping
غير قادر على حل الاسم - لمدة 15 دقيقة. وبعد 15 دقيقة من بينغ هو أيضا قادرة على حل الاسم. لقد جربت تطبيق TCP / IP الصغير الخاص بي، وهذا له نفس المشكلة. نظرت إلى حركة المرور في Wireshark، وأرى أن NSLookup يرسل طلبات بحث DNS، في حين أن Ping ليس كذلك.
هل هناك على أي حال يمكنني ركل النوافذ لإشعار اسم خادم الاسم سابقا؟ أم أن هناك طريقة أفضل لتعيين خوادم الأسماء في ويندوز؟
شكرا مقدما لمساعدتكم!
المحلول
لا تغير مفتاح التسجيل هذا مباشرة. كما وجدت، لا يخطر عملاء DNS بأنهم قد تغير الأسماء.
من المحتمل أن يكون الحل الأسهل %SystemRoot%\system32\netsh.exe
.
netsh interface ip set dns name="Local Area Connection" source=static addr=...