如何显示,修改WIN2000的计算机名,IP,相关信息!急 ( 积分: 100 )

  • 主题发起人 主题发起人 李锦江
  • 开始时间 开始时间

李锦江

Unregistered / Unconfirmed
GUEST, unregistred user!
如题!!!
 
如题!!!
 
function LocalIP:string;
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
I : Integer;
GInitData : TWSADATA;

begin
WSAStartup($101, GInitData);
Result := '';
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^ <> nil do begin
result:=StrPas(inet_ntoa(pptr^^));
Inc(I);
end;
WSACleanup;
end;
========================================

xanadu (2003-08-14 14:13:00)
逻辑IP设置,启动逻辑IP命令:

Win2000
netsh interface ip add address name="本地连接" ip mask
关闭逻辑IP命令:
netsh interface ip delete address name="本地连接" ip
例如:

netsh interface ip add address name="本地连接" 192.168.20.19 255.255.255.0
netsh interface ip delete address name="本地连接" 192.168.20.19
netsh interface ip set address name="本地连接" source=dhcp

英文版设置位动态IP:
netsh interface ip set address name="Local Area Connection" source=dhcp


netsh>interface ip set address ?

用法: set address [name=]<string>
[[source=]dhcp |
[source=] static [addr=]IP address [mask=]IP subnet mask]
[[gateway=]<IP address>|none [gwmetric=]integer]


参数:

标记 值
name - 接口名称。
source - 下列值之一:
dhcp: 对于指定接口,设置用 DHCP 配置 IP
地址。
static: 设置使用本地静态配置设置 IP
地址。

gateway - 下列值之一:
<IP address>: 您设置的 IP 地址的指定默认网关。
none: 不设置默认网关。
gwmetric - 默认网关的跃点数。如果网关设置为 'none',则不应设置此字段。
只有在 'source' 为 'static' 时才设置下列选项:

addr - 指定接口的 IP 地址。
mask - 指定 IP 地址的子网掩码。

注释 : 用来将 IP 地址配置模式从 DHCP 模式改为 static,或从 static
模式改为 DHCP。用静态 IP 地址在接口上添加 IP 地址,或添加
默认网关。
示例 :

set address name="Local Area Connection" source=dhcp
set address local static 10.0.0.9 255.0.0.0 10.0.0.1 1


其实就是执行一条命令就行了。


program get_ip;
uses
winsock,sysutils;
VAR
ch : ARRAY[1..32] OF Char;
i : Integer;
WSData: TWSAData;
MyHost: PHostEnt;
begin
IF WSAstartup(2,wsdata)<>0 THEN
BEGIN
Writeln('can''t start Winsock: Error ',WSAGetLastError);
Halt(2);
END;
try
IF getHostName(@ch[1],32)<>0 THEN
BEGIN
Writeln('getHostName failed');
Halt(3);
END;
except
Writeln('getHostName failed');
halt(3);
end;
MyHost:=GetHostByName(@ch[1]);
IF MyHost=NIL THEN
BEGIN
Writeln(GetHostName('+StrPas(@ch[1])+') failed : Error
'+IntToStr(WSAGetLastError));
Halt(4);
END
ELSE
BEGIN
Write('address ');
FOR i:=1 TO 4 DO
BEGIN
Write(Ord(MyHost.h_addr^[i-1]));
IF i<4 THEN
then write('.')
ELSE
writeln;
END;
END;
end.
===========================================
 
你在dfw find ,一大堆
我举个列子
var
_computername:pchar;
c:dword;

getmem(_computername,255);
c:= 255;
getcomputername(_computername,c);
freemem(_computername);
 
最重要的是在WIN2000设置IP和计算机。
getcomputername();
SETcomputername();
不用应用在WIN2000上的我试过
 
得到计算机名和IP:
uese ...,winsock;
....
function TDataModel.GetComputername:String;
var
str1,IP,IPStr:String;
Buffer:Array[1..32] of Char;
Host:PHostEnt;
WSData:TWSAData;
begin
WSAstartup(2,WSData);

GetHostName(@Buffer[1],32);
str1:=Buffer;
Host:=GetHostByName(PChar(str1));
Result:=Host.h_name;

//下面是IP
for i:=1 to 4 do
begin
Ip:=IntToStr(Ord(Host.h_addr^[i-1]));
Ipstr:=Ipstr+Ip;
if i<4 then
Ipstr:=Ipstr+'.'
else
IP:=Ipstr;
end;
end;
设定计算机名用SetComputerName,具体用法查帮助。
 
多人接受答案了。
 
有没有可视化的返回方法
返回资源管理器一样的网上邻居
 
后退
顶部