网络函数库

凤骐珠宝

凤骐珠宝

2016-02-19 13:22

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的网络函数库教程,一起来看看吧!超容易上手~

  
  {=============================================================
     功  能: 网络函数库
     时  间: 2002/10/02
     版  本: 1.0
     备  注: 没有事情干,抄抄写写整理了一些网络函数供大家使用。
     希望大家能继续补充
  ==============================================================}
  unit Net;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  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;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  {=================================================================
    功  能: 返回本机的局域网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;

   

展开更多 50%)
分享

猜你喜欢

网络函数库

编程语言 网络编程
网络函数库

API之网络函数

编程语言 网络编程
API之网络函数

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

javascript函数库

Web开发
javascript函数库

ASP函数库

Web开发
ASP函数库

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

ASP实用函数库

ASP
ASP实用函数库

一个用于网络的工具函数库

PHP
一个用于网络的工具函数库

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Jsp常用技巧:图片验证码

Jsp常用技巧:图片验证码

导航设计与信息架构

导航设计与信息架构
下拉加载更多内容 ↓