网络函数库

2016-02-19 13:22 3 1 收藏

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

【 tulaoshi.com - 编程语言 】

  
  {=============================================================
     功  能: 网络函数库
     时  间: 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;

(本文来源于图老师网站,更多请访问https://www.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;

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

   

来源:https://www.tulaoshi.com/n/20160219/1603970.html

延伸阅读
标签: Web开发
我尽量不说大理论,诸如什么是png,自己查解决. PHP自4.3版本开始,捆绑了自己的GD2库,用户可以自己下载并设置.如果要查看自己的php版本是否支持gd模块(支持JPEG,PNG,WBMP但不再支持GIF),如下方式是一种方法: if(!function_exists('imagecreate')) { die('本服务器不支持GD模块'); } 如果不支持的话,如何配置 ? 下载gd模块的dll文件,修改php.in...
标签: PHP
  <?php // // SourceForge: Breaking Down the Barriers to Open Source Development // Copyright 1999-2000 (c) The SourceForge Crew // http://sourceforge.net // // $Id: database.php,v 1.6 2000/04/11 14:17:13 cvs Exp $ // // /etc/local.inc includes the machine specific database connect info function db_c...
标签: Web开发
?php$hidden_hash_var='your_password_here';$LOGGED_IN=false;//clear it out in case someone sets it in the URL or somethingunset($LOGGED_IN);/*create table user (user_id int not null auto_increment primary key,user_name text,real_name text,email text,password text,remote_addr text,confirm_hash text,is_conf...
在VC中使用MATLAB C/C++函数库 作者: 殷延伟 下载示例代码1 下载示例代码2 MATLAB广泛应用于线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等领域。因此如果在VC中对MATLAB进行调用将大大减少编程的工作量、保证程序的准确性,并且继承了VC++强大的功能,提高...
标签: Web开发
在PHP中有两套正则表达式函数库,两者功能相似,只是执行效率略有差异: 一套是由PCRE(Perl Compatible Regular Expression)库提供的。使用“preg_”为前缀命名的函数; 一套由POSIX(Portable Operating System Interface of Unix )扩展提供的(PHP默认)。使用以“ereg_”为前缀命名的函数; PHP中,正则表达式有三个作用: 匹配,也常...

经验教程

962

收藏

31
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部