zoukankan      html  css  js  c++  java
  • C#获取局域网中的所有正在使用的IP地址

    方法不是很好。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using System.Text.RegularExpressions;
    
    namespace _12获取局域网中的所有IP地址
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                IPAddress startIP = InputIPAddress("请输入开始IP地址:");
                IPAddress endIP = InputIPAddress("请输入结束IP地址:");
    
                int startNum;
                int endNum;
                string str1;
                string str2;
                GetBound(startIP, out startNum, out str1);
                GetBound(endIP, out endNum, out str2);
    
                if (str1 != str2) 
                {
                    Console.WriteLine("输入的IP不在同一段。");
                    return;
                }
                for (int i = startNum; i < endNum; i++) 
                {
                    try
                    {
                        IPAddress ip = IPAddress.Parse(str1 + i);
                        Console.Write("[{0}] - [", ip);
                        IPHostEntry hostEntry = Dns.GetHostEntry(ip);
                        Console.WriteLine("{0}]", hostEntry.HostName);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message + "]");
                    }
                }
    
                Console.ReadKey();
            }
    
            static void Scan(IPAddress startIP, IPAddress endIP) 
            {
    
            }
    
            static void GetBound(IPAddress ip, out int num, out string str) 
            {
                string reg = @"(?<str>d+.d+.d+.)(?<num>d+)";
                Match match = new Regex(reg).Match(ip.ToString());
                string numStr = match.Groups["num"].Value;
                num = Convert.ToInt32(numStr);
                str = match.Groups["str"].Value;
            }
    
            static IPAddress InputIPAddress(string msg) 
            {
                string msgTemp = msg;
                IPAddress ip = null;
                while (true) 
                {
                    Console.Clear();
                    Console.WriteLine(msg);
                    string ipStr = Console.ReadLine();
                    if (IPAddress.TryParse(ipStr, out ip))
                    {
                        break;
                    }
                    else 
                    {
                        msg = "输入的"" + ipStr + ""格式不正确," + msgTemp;
                    }
                }
                Console.Clear();
    
                return ip;
            }
        }
    }
    

      


  • 相关阅读:
    Go安装
    Redis 安装与使用
    scala总结
    C++学习笔记4
    LeetCode 22.将数组分成和相等的三个部分
    LeetCode 21.二叉树的直径 DFS深度遍历
    LeetCode 20.买卖股票的最佳时机 暴力破解法与动态规划
    LeetCode 19.凑零钱问题 动态规划
    LeetCode 18.队列的最大值
    Java SSM Spring MVC 三层架构和MVC+SpringMVC的入门案例+请求参数的绑定+常用的注解
  • 原文地址:https://www.cnblogs.com/liqipeng/p/4576163.html
Copyright © 2011-2022 走看看