很急!!!!!!!!!!!在线等待,怎样得到本机IP和修改它 很急!!!!!!!!!!!在线等待,怎样得到本机IP和修改它 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵!分拿定了,我刚好前两天写的程序,原码给你unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,winsock,registry;type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Button2: TButton; Edit2: TEdit; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}function GetIPAddress : string;var Sdata : TWSAData; ErrorCode: Integer; HEnt: PHostEnt; IPAddr : TInAddr; CName : PChar; iSize : longword;begin isize := MAX_COMPUTERNAME_LENGTH; GetMem(CName, iSize); Try GetComputerName(CName, iSize); ErrorCode := WSAStartup($0101, SData); if ErrorCode = 0 then begin Try HEnt := GetHostbyName(CName); if HEnt <> nil then begin with IPAddr, HEnt^ do begin S_un_b.s_b1 := h_addr^[0]; S_un_b.s_b2 := h_addr^[1]; S_un_b.s_b3 := h_addr^[2]; S_un_b.s_b4 := h_addr^[3]; end; Result := inet_ntoa(IPAddr); end; Finally end; end; Finally FreeMem(CName); end;end;procedure TForm1.Button2Click(Sender: TObject); 获得ipbeginedit2.Text:=GetIPAddress ;end;procedure TForm1.Button1Click(Sender: TObject); 修改IPvarReg: TRegistry;begin Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE;ifReg.OpenKey('\System\CurrentControlSet\Services\Class\NetTrans\0000', True)then Reg.WriteString('IPAddress',edit1.text);Reg.CloseKey;Reg.Free;showmessage('修改成功');end;end. function GetLocalIP(var LocalIp: string): Boolean;var HostEnt: PHostEnt; Ip: string; addr: pchar; Buffer: array [0..63] of char; GInitData: TWSADATA;begin Result := False; try WSAStartup(2, GInitData); GetHostName(Buffer, SizeOf(Buffer)); HostEnt := GetHostByName(buffer); if HostEnt = nil then Exit; addr := HostEnt^.h_addr_list^; ip := Format('%d.%d.%d.%d', [byte(addr [0]), byte (addr [1]), byte (addr [2]), byte (addr [3])]); LocalIp := Ip; Result := True; finally WSACleanup; end;end; 求Inno打包程序读取ini文件 模拟键盘消息 卸载时出现:解压缩支持文件时出错:拒绝访问 100分急求StrToFloat(edit1.text)用法,急!急1急!急!!!!!!!!! 如何用DELPHI创建日志 怎样把MDI母子窗口的TOOLBAR 合并到一快呢?500分等你拿 rave报表问题? 老大们,请看DBComboBox1 大家好,关于Frame动态库的问题,先谢谢了 ADO的发布问题,请帮忙 sql server 数据成批追加的问题---高分请教 怎么取到SQL语句统计后的字段值?在线等待。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,winsock,registry;type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
Edit2: TEdit;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
function GetIPAddress : string;
var
Sdata : TWSAData;
ErrorCode: Integer;
HEnt: PHostEnt;
IPAddr : TInAddr;
CName : PChar;
iSize : longword;
begin
isize := MAX_COMPUTERNAME_LENGTH;
GetMem(CName, iSize);
Try
GetComputerName(CName, iSize);
ErrorCode := WSAStartup($0101, SData);
if ErrorCode = 0 then
begin
Try
HEnt := GetHostbyName(CName);
if HEnt <> nil then
begin
with IPAddr, HEnt^ do
begin
S_un_b.s_b1 := h_addr^[0];
S_un_b.s_b2 := h_addr^[1];
S_un_b.s_b3 := h_addr^[2];
S_un_b.s_b4 := h_addr^[3];
end;
Result := inet_ntoa(IPAddr);
end;
Finally
end;
end;
Finally
FreeMem(CName);
end;
end;
procedure TForm1.Button2Click(Sender: TObject); 获得ip
begin
edit2.Text:=GetIPAddress ;
end;procedure TForm1.Button1Click(Sender: TObject); 修改IP
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if
Reg.OpenKey('\System\CurrentControlSet\Services\Class\NetTrans\0000', True)
then Reg.WriteString('IPAddress',edit1.text);
Reg.CloseKey;
Reg.Free;
showmessage('修改成功');
end;
end.
var
HostEnt: PHostEnt;
Ip: string;
addr: pchar;
Buffer: array [0..63] of char;
GInitData: TWSADATA;
begin
Result := False;
try
WSAStartup(2, GInitData);
GetHostName(Buffer, SizeOf(Buffer));
HostEnt := GetHostByName(buffer);
if HostEnt = nil then Exit;
addr := HostEnt^.h_addr_list^;
ip := Format('%d.%d.%d.%d', [byte(addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
LocalIp := Ip;
Result := True;
finally
WSACleanup;
end;
end;