Example #1
0
        public VpnRoute()
        {
            Tunnel = new NetIntf(TapDeviceFunc.GetTapDevice(Program.UserConfig.TapIntfaceName));
            var intf = Diagnostic.GetBestInterface(Program.UserConfig.CurrentProfile.ServerIp);

            _origin        = intf == null ? new NetIntf(IPNetHelper.GetBestIntf(Program.UserConfig.CurrentProfile.ServerIp.ToUInt32())) : new NetIntf(intf);
            _chnRouteOn    = false;
            _originGateway = GetGateway();
        }
Example #2
0
        public void SetDns(v4addr dns)
        {
            var target = GetManagementObject();

            if (target != null)
            {
                ManagementBaseObject param = target.GetMethodParameters("SetDNSServerSearchOrder");
                param["DNSServerSearchOrder"] = new[] { dns.ToString() };
                target.InvokeMethod("SetDNSServerSearchOrder", param, null);
            }
        }
Example #3
0
        public void SetStaticIP(v4addr addr, v4addr mask)
        {
            var target = GetManagementObject();

            if (target != null)
            {
                ManagementBaseObject param = target.GetMethodParameters("EnableStatic");
                param["IPAddress"]  = new[] { addr.ToString() };
                param["SubnetMask"] = new[] { mask.ToString() };
                target.InvokeMethod("EnableStatic", param, null);
            }
        }
Example #4
0
 public Profile(ProfileJsonObject o)
 {
     Server      = o.server;
     Port        = o.port;
     UserToken   = o.usertoken;
     Ip          = new v4addr(o.ip);
     Subnet      = new v4addr(o.subnet);
     Dns         = new v4addr(o.dns);
     Password    = o.password;
     Mtu         = o.mtu;
     RemoteTunIp = new v4addr(o.remote_tun_ip);
     ServerIp    = new v4addr(o.server);
 }
Example #5
0
        private v4addr GetGatewayFromTracert()
        {
            // more than one running network interface
            var matches = Regex.Matches(Diagnostic.CallTracert(" -d -h 1 114.114.114.114"), @"(\d{1,3}\.){3}\d{1,3}");

            if (matches.Count != 2)
            {
                return(null);
            }
            var targetGateway = new v4addr(matches[1].Value);

            return(targetGateway);
        }
Example #6
0
 public void AddRouteEntry(v4addr dest, v4addr mask, v4addr next, uint metric = 0)
 {
     IPNetHelper.CreateIPForwardEntry(dest.ToUInt32(), mask.ToUInt32(), next.ToUInt32(), IntfIndex,
                                      (int)(metric == 0 ? _defaultInterfaceMetric : _defaultInterfaceMetric + metric));
 }
Example #7
0
 public void DeletePersistentRoute(v4addr dest, v4addr mask, v4addr next)
 {
     Diagnostic.CallRouteExe($"-p DELETE {dest} MASK {mask} {next}");
 }
Example #8
0
 public void DeleteRouteEntryUsingRouteExe(v4addr dest, v4addr mask, v4addr next)
 {
     Diagnostic.CallRouteExe($"DELETE {dest} MASK {mask} {next}");
 }
Example #9
0
 public void AddPersistentRoute(v4addr dest, v4addr mask, v4addr next, int metric)
 {
     Diagnostic.CallRouteExe($"-p ADD {dest} MASK {mask} {next} METRIC {metric} IF {IntfIndex}");
 }
Example #10
0
 public void AddRouteEntryUsingRouteExe(v4addr dest, v4addr mask, v4addr next, int metric)
 {
     Diagnostic.CallRouteExe($"ADD {dest} MASK {mask} {next} METRIC {metric} IF {IntfIndex}");
 }
Example #11
0
 public void DeleteRouteEntry(v4addr dest, v4addr mask, v4addr next)
 {
     IPNetHelper.DeleteIPForwardEntry(dest.ToUInt32(), mask.ToUInt32(), next.ToUInt32(), IntfIndex);
 }