⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 net.pas

📁 端口服务程序(ServerService.rar)及常用网络函数及加解密
💻 PAS
字号:
 
  {=============================================================
     功  能: 网络函数库
     时  间: 2002/10/02
     版  本: 1.0
     备  注: 没有事情干,抄抄写写整理了一些网络函数供大家使用。
     希望大家能继续补充
  ==============================================================}
  unit Net;

  interface
    uses
        SysUtils
       ,Windows
       ,dialogs
       ,winsock
       ,Classes
       ,ComObj
       ,WinInet;

    //得到本机的局域网Ip地址
    Function GetLocalIp(var LocalIp:string): Boolean;
    //通过Ip返回机器名
    Function GetNameByIPAddr(IPAddr: string; var MacName: string): Boolean ;
    //获取网络中SQLServer列表
    Function GetSQLServerList(var List: Tstringlist): Boolean;
    //获取网络中的所有网络类型
    Function GetNetList(var List: Tstringlist): Boolean;
    //获取网络中的工作组
    Function GetGroupList(var List: TStringList): Boolean;
    //获取工作组中所有计算机
    Function GetUsers(GroupName: string; var List: TStringList): Boolean;
    //获取网络中的资源
    Function GetUserResource(IpAddr: string; var List: TStringList): Boolean;
    //映射网络驱动器
    Function NetAddConnection(NetPath: Pchar; PassWord: Pchar;LocalPath: Pchar): Boolean;
    //检测网络状态
    Function CheckNet(IpAddr:string): Boolean;
    //检测机器是否登入网络
    Function CheckMacAttachNet: Boolean;

    //判断Ip协议有没有安装   这个函数有问题
    Function IsIPInstalled : boolean;
    //检测机器是否上网
    Function InternetConnected: Boolean;

  implementation

  {=================================================================
    功  能: 检测机器是否登入网络
    参  数: 无
    返回值: 成功:  True  失败:  False
    备 注:
    版 本:
       1.0  2002/10/03 09:55:00
  =================================================================}
  Function CheckMacAttachNet: Boolean;
  begin
    Result := False;
    if GetSystemMetrics(SM_NETWORK) <> 0 then
      Result := True;
  end;

  {=================================================================
    功  能: 返回本机的局域网Ip地址
    参  数: 无
    返回值: 成功:  True, 并填充LocalIp   失败:  False
    备 注:
    版 本:
       1.0  2002/10/02 21:05:00
  =================================================================}
  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;

  {=================================================================
    功  能: 通过Ip返回机器名
    参  数:
            IpAddr: 想要得到名字的Ip
    返回值: 成功:  机器名   失败:  ''
    备 注:
      inet_addr function converts a string containing an Internet
      Protocol dotted address into an in_addr.
    版 本:
      1.0  2002/10/02 22:09:00
  =================================================================}
  function GetNameByIPAddr(IPAddr : String;var MacName:String): Boolean;
  var
    SockAddrIn: TSockAddrIn;
    HostEnt: PHostEnt;
    WSAData: TWSAData;
  begin
    Result := False;
    if IpAddr = '' then exit;
    try
      WSAStartup(2, WSAData);
      SockAddrIn.sin_addr.s_addr := inet_addr(PChar(IPAddr));
      HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
      if HostEnt <> nil then
        MacName := StrPas(Hostent^.h_name);
      Result := True;
    finally
      WSACleanup;
    end;
  end;

  {=================================================================
    功  能: 返回网络中SQLServer列表
    参  数:
            List: 需要填充的List
    返回值: 成功:  True,并填充List  失败 False
    备 注:
    版 本:
      1.0  2002/10/02 22:44:00
  =================================================================}
  Function GetSQLServerList(var List: Tstringlist): boolean;
  var
     i: integer;
     sRetValue: String;
     SQLServer: Variant;
     ServerList: Variant;
  begin
    Result := False;
    List.Clear;
    try
      SQLServer := CreateOleObject('SQLDMO.Application');
      ServerList := SQLServer.ListAvailableSQLServers;
      for i := 1 to Serverlist.Count do
        list.Add (Serverlist.item(i));
      Result := True;
    Finally
      SQLServer := NULL;
      ServerList := NULL;
    end;
  end;

  {=================================================================
    功  能: 判断Ip协议有没有安装
    参  数: 无
    返回值: 成功:  True 失败: False;
    备 注:   该函数还有问题
    版 本:
       1.0  2002/10/02 21:05:00
  =================================================================}
  Function IsIPInstalled : boolean;
  var
    WSData: TWSAData;
    ProtoEnt: PProtoEnt;
  begin
    Result := True;
    try
      if WSAStartup(2,WSData) = 0 then
      begin
        ProtoEnt := GetProtoByName('IP');
        if ProtoEnt = nil then
          Result := False
      end;
    finally
      WSACleanup;
    end;
  end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -