コード例 #1
0
ファイル: lan.rules.cs プロジェクト: rysavy-ondrej/Distance
        public override void Define()
        {
            IpSourceEndpoint ipSrc   = null;
            AddressMapping   mapping = null;

            When()
            .Match(() => ipSrc, x => LanRulesHelper.IsLinkLocal(x.IpAddr))
            .Match(() => mapping, m => m.IpAddr == ipSrc.IpAddr);
            Then()
            .Yield(_ => new LinkLocalIpAddressUse {
                IpAddress = ipSrc.IpAddr, EthAddress = mapping.EthAddr
            });
        }
コード例 #2
0
ファイル: lan.rules.cs プロジェクト: rysavy-ondrej/Distance
        public override void Define()
        {
            LocalNetworkPrefix localNetworkPrefix = null;
            IGrouping <AddressScope, AddressMapping> addressClass = null;

            When()
            .Match(() => localNetworkPrefix)
            .Query(() => addressClass, q => q
                   .Match <AddressMapping>()
                   .GroupBy(m => LanRulesHelper.GetAddressScope(m.IpAddr, localNetworkPrefix)));
            Then()
            .Do(ctx => ctx.Info($"{addressClass.Key} hosts: {StringUtils.ToString(addressClass.ToArray())}"));
        }
コード例 #3
0
ファイル: lan.rules.cs プロジェクト: rysavy-ondrej/Distance
        bool IsLocalOrMulticast(string ipAddr, LocalNetworkPrefix localNetworkPrefix)
        {
            var scope = LanRulesHelper.GetAddressScope(ipAddr, localNetworkPrefix);

            return(scope != AddressScope.RemoteAddress);
        }