PDA

View Full Version : Dynamically changing TCP/IP DNS addresses



Gladiator
چهارشنبه 28 آبان 1382, 10:08 صبح
با سلام

دوستان عزیز برای تغییر دادن آدرس DNS توی سایت MSN جستجو کردم و تا به حال به این نتیجه رسیدم :


If you have a need to dynamically change your DNS servers from your program, you can do so by calling the the following "SetTCPIPDNSAddresses()" function with a list of DNS IP addresses separated by a single space.

رجیستری :


uses Registry;

procedure
SaveStringToRegistry_LOCAL_MACHINE(
sKey, sItem, sVal : string );
var
reg : TRegIniFile;
begin
reg := TRegIniFile.Create( '' );
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.WriteString(
sKey, sItem, sVal + #0 );
reg.Free;
end;

ست کردن DNS :


procedure
SetTCPIPDNSAddresses(
sIPs : string );
begin
//
// if using Windows NT
//
SaveStringToRegistry_LOCAL_MACHINE(
'SYSTEM\CurrentControlSet' +
'\Services\Tcpip\Parameters',
'NameServer',
sIPs );

//
// if using Windows 95
//
SaveStringToRegistry_LOCAL_MACHINE(
'SYSTEM\CurrentControlSet' +
'\Services\VxD\MSTCP',
'NameServer',
sIPs );
end;

مثال :


SetTCPIPDNSAddresses('192.9.9.3');

موفق باشید .

Gladiator
چهارشنبه 28 آبان 1382, 10:11 صبح
لطفا شما هم چک کنید و اگر چیزی به ذهنتون میرسه اضافه کنید .

متشکرم .

Gladiator
چهارشنبه 28 آبان 1382, 10:38 صبح
لطفا مسیر رو توی رجیستری با این مسیر تعویض کنید :


HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\T cpip\Parameters\Interfaces\{1BCEB810-EA46-4EA9-A7E4-1CC180E687EB}\

خودم هم امتحانش کردم کار میکنه :


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Registry, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
procedure
SaveStringToRegistry_LOCAL_MACHINE(
sKey, sItem, sVal : string );
var
reg : TRegIniFile;
begin
reg := TRegIniFile.Create( '' );
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.WriteString(
sKey, sItem, sVal + #0 );
reg.Free;
end;

procedure
SetTCPIPDNSAddresses(
sIPs : string );
begin
//
// if using Windows NT
//
SaveStringToRegistry_LOCAL_MACHINE(
'SYSTEM\ControlSet001' +
'\Services\Tcpip\Parameters\Interfaces\{1BCEB810-EA46-4EA9-A7E4-1CC180E687EB}',
'NameServer',
sIPs );
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SetTCPIPDNSAddresses(edit1.Text);


end;

end.

امیدوارم مفید باشه .
موفق باشید .
گلادیاتور .