示例#1
0
        public virtual void SetIP(params String[] ips)
        {
            //if (ips.Length != InterfacesCount)
            //	throw new ArgumentException("Invalid number of IP adresses");
            InterfacesCount = ips.Length;

            InterfaceAdresses = new IPAddressWithMask[InterfacesCount];
            for (int i = 0; i < ips.Length; i++)
            {
                InterfaceAdresses[i] = new IPAddressWithMask(ips[i]);
            }

            display_interfaces();
        }
示例#2
0
        private Route get_route(IPAddress adress)
        {
            if (route_table == null)
            {
                return(null);
            }

            foreach (var route in route_table)
            {
                if ((route.Destination == null) || (IPAddressWithMask.IsInSameSubnet(adress, route.Destination, route.Mask)))
                {
                    return(route);
                }
            }

            return(null);
        }
示例#3
0
        //Переводит состояние трассировки в строку
        public static string TraceToString(string sender_name, IPAddressWithMask sender_ip, int sender_port, string receiver_name, Package package)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(sender_name).Append(" (");

            if (sender_ip != null)
            {
                sb.Append(sender_ip);
            }

            sb.Append(":").Append(sender_port).Append(") ")
            .Append("sent packet ")
            .Append(package)
            .Append(" to ")
            .Append(receiver_name);

            return(sb.ToString());
        }