4

DHCP から使用可能な IP を取得する必要があります。IPアドレスを取得しようとし、応答しないアドレスに到達するまで次のpingを開始しました。

public static IPAddress FindNextFree(this IPAddress address)
{
    IPAddress workingAddress = address;
    Ping pingSender = new Ping();

    while (true)
    {
        byte[] localBytes = workingAddress.GetAddressBytes();

        localBytes[3]++;
        if (localBytes[3] > 254)
            localBytes[3] = 1;

        workingAddress = new IPAddress(localBytes);

        if (workingAddress.Equals(address))
            throw new TimeoutException("Could not find free IP address");

        PingReply reply = pingSender.Send(workingAddress, 1000);
        if (reply.Status != IPStatus.Success)
        {
            return workingAddress;
        }
    }
}

ただし、DHCP が一部のコンピューター用に特別なアドレスを予約する場合があるため、使用可能な IP アドレスを dhcp から取得する必要があります。どうすればC#で実装できますか?

4

3 に答える 3

3

それはあなたがそれを使用している正しい方法ではありません.DHCPサーバーに新しいIPを要求してからそれを受け入れる必要があります.DHCPサーバーとの通信についてはこちらを読んでください.

http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol

于 2013-10-09T13:48:15.433 に答える