<font color="red">求解,解决后再加150分</font> (150分)

  • 主题发起人 主题发起人 liersbaby
  • 开始时间 开始时间
L

liersbaby

Unregistered / Unconfirmed
GUEST, unregistred user!
如何得知目标主机所运行的操作系统(像www.netcraft.com的功能一样)?
 
function GetWinVersion: TWin32Version;
begin
Result := wvUnknown;
if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then
if (Win32MajorVersion &gt; 4) or
((Win32MajorVersion = 4) and (Win32MinorVersion &gt; 0)) then
Result := wvWin98
else
Result := wvWin95
else
if Win32MajorVersion &lt;= 4 then
Result := wvWinNT
else
if Win32MajorVersion = 5 then
Result := wvWin2000
end;
 
guotong:我要的是可以查大部分系统的(windows.linux.solaris....),而且是在远程,
以前有个ip炸弹软件可以这么做,我想知道原理
 
我都想知道。nmap端口扫描程序,原理是什么我也不知道。
 
看端口。
 
能具体一点吗?
 
有没有人能回答这个问题??
 
我觉得可以从端口及相关服务查出系统,不过有些可能不准
具体也不太清楚
 
我觉得可以从端口及相关服务查出系统,不过有些可能不准
具体也不太清楚
 
如果对方打开了telnet
telnet 对方地址 可以看到对方的操作系统

如果对方有smtp或者pop3服务
telnet 对方 pop3
telnet 对方 smtp
可以看到对方用的邮件程序,有时候可以猜出是什么系统

如果对方有web服务
telnet 对方 80
随便输入几个字符,按2次回车,对方会返回信息,其中带有web服务程序名字
有时候可以猜出是什么系统

如果对方有ftp服务
ftp 对方
可以看到对方使用的ftp服务的程序名字,有时候可以猜出是什么系统
 
只是知道大致的原理,如nmap,它向服务器发特殊的tcp包和udp包,每种操作系统的处理实现
方式不同,返回的应答报文就有差别,然后就可以得到服务器运行的操作系统类型了,好像
是6个tcp+1个udp包......再具体的就得听各位大侠的了.
 
我也想知道
 
从注册表中得到目前操作系统是Windows95还是WindowsNT,并得到其版本,首先要在USES段加入下面的内容
uses Registry, ComCtrls, ExtCtrls;
然后才在需要的地方加入下面语句var
MyVersionInfo: TOSVersionInfo;
MyReg: TRegistry;
IsNT: Boolean;
begin
MyReg := TRegistry.Create;
MyReg.RootKey := HKEY_LOCAL_MACHINE;

IsNT := False;

MyVersionInfo.dwOSVersionInfoSize := sizeof(TOSVERSIONINFO);

if GetVersionEx(MyVersionInfo) then
Label1.Caption := IntToStr(MyVersionInfo.dwPlatformId)
else Label1.Caption := 'false';

if MyVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then
Label1.Caption := 'Windows 95';
if MyVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
IsNT := True;
Label1.Caption := 'Windows NT';
end;

try
if IsNT then
if not MyReg.OpenKey('/SOFTWARE/Microsoft/Windows NT/CurrentVersion', FALSE) then
else Label2.Caption := MyReg.ReadString('CurrentVersion')
else
if not MyReg.OpenKey('/SOFTWARE/Microsoft/Windows/CurrentVersion', FALSE) then
else Label2.Caption := MyReg.ReadString('VersionNumber');
finally
end; // try..finally
end;

 
再提示一遍,我的要求是能在远程查一个机器所运行的操作系统
大家可以去www.ipsearch.com.cn看看,就是那样的.
 
Declare Function GetVersion Lib "kernel32" Alias "GetVersion" () As Long
说明
判断当前运行的Windows和DOS版本
返回值
Long,低16位包含了windows版本;低字节包含了主版本号(3代表windows 3.10,4代表nt 4.0);高字节包含了两个数位的辅助版本号(10代表windows 3.10,95代表windows 95)。高16位则包含了平台信息。针对windows NT,高位设为0;针对windows for workgroups上运行的Win32s,则高位为1
注解
在win32下,最好换用GetVersionEx函数。在win32下,高字不会返回DOS版本

 
后退
顶部