大家好呀,我是新手,我想请问一个问题,,就是delphi2009,,如何取得 ip地址  机名  DNS 网关 和子网掩码ip地址  机名 我会了,,但是要如何显示DNS 网关  子网掩码呢,,,看清回问题,,是delphi2009 或delphi2010也行 如果是delphi2009版以下的就不用了,先谢了,,

解决方案 »

  1.   

    用delphi7的多,2010不习惯,unit Unit1;interfaceuses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;type
    TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;var
    Form1: TForm1;implementation{$R *.dfm}procedure SetPrivilege; //提升权限为DEBUG的权限。
    var
    OldTokenPrivileges, TokenPrivileges: TTokenPrivileges;
    ReturnLength: dword;
    hToken: THandle;
    Luid: int64;
    begin
    OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
    LookupPrivilegeValue(nil, 'SeDebugPrivilege', Luid);
    TokenPrivileges.Privileges[0].luid := Luid;
    TokenPrivileges.PrivilegeCount := 1;
    TokenPrivileges.Privileges[0].Attributes := 0;
    AdjustTokenPrivileges(hToken, False, TokenPrivileges, SizeOf(TTokenPrivileges), OldTokenPrivileges, ReturnLength);
    OldTokenPrivileges.Privileges[0].luid := Luid;
    OldTokenPrivileges.PrivilegeCount := 1;
    OldTokenPrivileges.Privileges[0].Attributes := TokenPrivileges.Privileges[0].Attributes or SE_PRIVILEGE_ENABLED;
    AdjustTokenPrivileges(hToken, False, OldTokenPrivileges, ReturnLength, PTokenPrivileges(nil)^, ReturnLength);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
    netshtxt:string;
    begin
    //设置网关
    netshtxt:='netsh interface ip set address name="本地连接" gateway=192.168.1.1 gwmetric=0';
    winexec(pchar(netshtxt),sw_hide);// showmessage('上网,网关DNS设置成功。');
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
    netshtxt2:string;
    begin
    SetPrivilege;
    //设置网关
    netshtxt2:='netsh interface ip set address name="本地连接" gateway=192.168.1.2 gwmetric=0';
    winexec(pchar(netshtxt2),sw_hide);
    //设置DNS
    // netshDNS2:='netsh interface ip set dns "本地连接" static 192.168.1.2 register=PRIMARY';
    /// winexec(pchar(netshDNS2),sw_hide);
    // showmessage('不上网,网关DNS设置成功。');
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
    SetPrivilege; //提升到DEBUG权限 。
    end;procedure TForm1.Button3Click(Sender: TObject);
    VAR
    netshDns:string;
    begin
    //设置DNS
    netshDNS:='netsh interface ip set dns "本地连接" static 192.168.1.1 register=PRIMARY';
    winexec(pchar(netshDNS),sw_hide);
    end;procedure TForm1.Button4Click(Sender: TObject);
    var
    netshdns2:string;
    begin
    //设置DNS
    netshDNS2:='netsh interface ip set dns "本地连接" static 192.168.1.2 register=PRIMARY';
    winexec(pchar(netshDNS2),sw_hide);
    end;end.百度到的,你看看对你有帮助没
      

  2.   

    chengran1984  大哥,你的这个不行呀,我要的是delphi2010用的呀,,你这个是delphi7用的吧,不通用的
      

  3.   

    我上面的那个图也是我用delphi2010编好成功剪的图,,,只是不会怎么再加上 网关的IP 子掩码 还有DNS呀