用SOCKET吧,开机的时候得到本机IP和网卡地址发数据过去,返回是否通过验证。

解决方案 »

  1.   

    参考API
    int gethostname(char FAR* name,int anmelen);
    struct hostent FAR * gethostbyname(const char FAR* name);
    UCHAR Netbios(PNCB pncb);
      

  2.   

    用ServerSocket和ClientSocket,服务器用ServerSocket,客户端用ClientSocket,服务器ServerSocket的IP应该是固定不变的吧,客户端
    的ClientSocket的Address属性设置为服务器的IP地址,
    ClientSocket与ServerSocket的Port属性设置为相同值,比如:2345。
    客户端程序运行时Active属性设置为True就可以找到服务器,(当然服务器
    要先运行),然后ServerSocket有一个OnClientConnect的属性
    procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    其中:socket.RemoteAddress 就是 客户端的IP地址,然后你应该可以判断了吧……,如果你还不懂,那就去书店看看书了……
      

  3.   

    用Socket很简单就能做到具体可以看看delphi自带的关于socket的例程
      

  4.   

    你可以这样来理解:首先将该局域网内部所有的IP地址和对应的MAC(网卡物理地址)
    进行登记,然后监视网络上流过的IP包,看封装的以太网包中的MAC,是否是已经登记
    的IP-MAC对,如果是则放行,如果不是,则阻止。这里涉及到两个技术问题:一、如何
    查看到网络上的IP包与MAC。二、如何阻止非法IP-MAC对的访问。
    第一个问题:
    首先部分交换机、路由器可以获得IP-MAC对,可以通过SNMP协议的陷阱来通知监控程序
    其次,部分NAT服务器有这个功能,如LINUX下的IPCHAINS或IPTABLE
    最后,我们自己实现,使用sniffer原理,监听网络上的数据包来获得IP-MAC
    第二个问题:
    首先交换机如果是可管理的,通过SNMP可以关闭发现私自改IP的端口
    其次,IPCHAINS和IPTABLE类似与代理服务器,可以设定只转发有合法IP-MAC的包
    最后,还是我们自己实现,通过想网络发送一个伪造的拒绝包,阻断该IP的访问,当然如果
    交换机没有关闭端口的功能,也可以使用这个方法来修理改IP的人。