使用c#连接到隐藏(非广播)网络?
我正在寻找一种通过C#连接到非广播(隐藏)网络的方法.这对我来说是一个新的发展领域.这是一个UWP应用程序,需要能够管理WiFi连接.我目前正在使用Windows.devices.wifi名称空间来完成几乎所有其他操作,但是我不知道该如何进行非广播.我有网络的SSID和密码.我可能会缺少一些东西,这可能真的很容易做,但是我缺少一些东西.有人可以帮助我吗? 解决方案 您可以使用BSSID来获取WifiaVailablEnetwork,就像我完成的那样: - 等待wifiadapter.scanasync(); var wifilist = wifilist.addrange(wifiadapter.networkreport.availablenetworks.tolist()); wifiavailablenetwork targetWifi = wifilist.firstordefault(x => x.bssid.quals.equals(" 00:19:a9:
14 2024-04-26
编程技术问答社区
在我所有的IP上发送一个UDP组播数据包
我正在尝试在所有网络接口(2 LAN,一个WiFi)上发送多播数据包.我首先遵循此教程. 我遇到的问题是,该数据包似乎只有我的一个IP地址之一. 这是我当前的代码. private static void SendOnAllCards(int port, String address) { using (Socket mSendSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) { mSendSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse(address)));
18 2024-04-26
编程技术问答社区
UDP客户只收到1条信息
我有一个我当前正在处理的服务器客户端应用程序.服务器在WAN上接收数据罚款,并且客户端似乎接收数据,但客户端仅接收一个通信. WAN上是否有任何使客户始终仅接收第一个返回UDP通信,而后续的则没有.谢谢您的帮助. 客户端UDP听力代码 private void receiveUDP() { System.Net.IPEndPoint test = new System.Net.IPEndPoint(System.Net.IPAddress.Any,UDP_PORT_NUMBER); System.Net.EndPoint serverIP = (System.Net.EndPoint)test; server.Bind(serverIP); //server.Ttl = 50; EndPoint RemoteServ = (EndPoint)listenUDP; do
16 2024-04-26
编程技术问答社区
在C#中通过TCP Socket发送/接收图像
我试图将图像发送给连接到我的TCP Listner(服务器)的客户端.我成功地通过网络发送和接收文本,但我无法从服务器将图片发送给客户端.我想不喜欢放置在客户端窗口中的图片框中的图片. 这是我用来发送和接收文本的代码,但不是图片 服务器: 接收器: void TListner() { try { IPEndPoint ipendp = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8080); TcpListener tl = new TcpListener(ipendp); tl.Start(); Socket s1 = tl.AcceptSocket(); ; NetworkStream ns = new NetworkStream(s1);
6 2024-04-26
编程技术问答社区
内部IP地址和外部IP地址的区别
谁能告诉我内部IP地址和外部IP地址之间有什么区别?如何使用Java,C#或Adobe Air等任何编程语言? 解决方案 内部IP地址是您网络的地址: IPHostEntry heserver = Dns.GetHostEntry(Dns.GetHostName()); IPAddress curAdd = heserver.AddressList[0]; curAdd.ToString(); 您的外部IP地址是您的ISP 的地址 string ip = new System.Net.WebClient() .DownloadString(("http://www.whatismyip.com/automation/n09230945.asp")); 其他解决方案 您可以使用以下代码(在Java中)获取本地IP地址: public String getLocalIpAddress() { try { f
18 2024-04-26
编程技术问答社区
如何自动启动应用程序
我在c#上工作.我在 tcp server-client 中工作.我编写客户端 application .要当客户端启动OS时,它是自动启动的.实际上,我有一个exe,希望用户启动他的计算机时活跃.我需要做什么?谢谢. 解决方案 有很多方法可以在运行时开始应用程序. 用于位置列表. 检查本文 总结它们是 Start->Programs->StartUp folder HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run 其他解决方案 在您的程序上添加以下代码. p
10 2024-04-26
编程技术问答社区
如何使用ARP获得活跃的局域网用户列表?
在命令提示中,我们可以使用命令 获得Active用户的IP [lan]的列表 arp - g 如何使用C# 获得类似列表 解决方案 您可以使用Process从c# program 执行命令 尝试以下操作: Process process = new Process(); ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "arp"; startInfo.Arguments = "-g"; startInfo.RedirectStandardOutput = true; startInfo.UseShellExecute = false; process.StartInfo = startInfo; process.Start();
8 2024-04-25
编程技术问答社区
Windows进程和它所连接的Ip地址
我正在尝试获取iPaddress,即在C#中连接一个过程.有一个简单的方法吗? 解决方案 有两种方法可以实现这一目标: 使用无证件InternalGetTcpTableWithOwnerModule/InternalGetUdpTableWithOwnerModule/InternalGetTcp6TableWithOwnerModule/InternalGetUdp6TableWithOwnerModule API从iphlpapi.dll导出. 运行netstat -b并解析输出. 无论哪种方式,您都需要管理员特权,两种方式都必定会使用不同的Windows版本中断.当然,可以使用已记录的API创建Windows驱动程序,但这将是很多工作. 更新: 实际上也有一个已记录的API - getextendendedUdptable .另外,还有一个
0 2024-04-25
编程技术问答社区
获取整个网络的文件权限
我有一个情况,我需要确认我能够在网络上获得对特定文件夹的写入访问权限.因此,首先,我检查是用户或其中一个组之一,它是访问规则中(域组)的一部分.如果不是这种情况,那么我需要仔细检查远程计算机上的所有本地组,以查看我的用户或用户的一个组是否是计算机上本地组的成员.例如,在这台特定的计算机上,我是内置\管理员的成员,这意味着我确实具有对给定文件夹的写入访问权限.但是,我不清楚如何从远程计算机中获取本地组来检查我是否有写入访问. 在下面的代码中,当我尝试使用groupprincipal.findbyidentity时,它给出了一个例外"绑定手柄无效".我不清楚什么是无效的.如果我只尝试使用CTX.ValidateCredentials(用户名,密码)验证我的用户名和密码(域用户名),则会给出完全相同的错误. 如果我将机器名称称为" PVR-PC",它说它找不到网络上的名称,但是" \\ pvr-pc"确实越过了这个问题. 相同的代码正确发现我是我本地计算机上的INDIN \
4 2024-04-25
编程技术问答社区
从局域网的IP地址查找DNS主机名
嘿.我编写了一个程序,该程序会顺序扫描LAN的某些部分以供计算机(提供代码).但是,当我运行此代码时,它仅返回正在运行的计算机的DNS主机名.我研究了使用WMI,但是我不能,因为我不会总是对正在找到的计算机有特权.还有其他方法可以找到本地计算机主机名吗? using System; using System.Net; using System.Net.NetworkInformation; using System.Text; namespace CheckLocalNetwork { class PingCheck { public static string fullip; public void CheckSequentialIP() { IPHostEntry IpEntry = Dns.GetHostEntry(fullip); Ping pingSend
14 2024-04-25
编程技术问答社区
C# Stream.ReadTimeout属性
我正在研究流阅读器超时属性.从文档中,我不明白, 该属性如何工作? 流读取器超时会发生什么? 有人可以向我解释这些问题或指出比这更好的文档. 示例代码: TcpClient client = new TcpClient(serverIP, serverTcpPort); Stream s = client.GetStream(); StreamReader sr = new StreamReader(s); sr.BaseStream.ReadTimeout = 100; 解决方案 文档非常清楚地表明,并非每个流都会实现ReadTimeout.流的某些子类可能实现此属性.因此,您需要检查子类文档以了解ReadTimeout的使用情况. 您的代码段将与网络流一起使用,该网络由 返回 Stream s = client.GetStream(); Microsoft网站确实有一些针对此NetworkStream类及其ReadTimeout属性的特定文档,
0 2024-04-25
编程技术问答社区
WCF发现了端点,但地址是localhost。
我有一个可发现的WCF可发现服务,称为" getNameservice",该服务托管在PC上 @ 10.0.0.5:8732.它由WSHTTPBINDING托管,可以通过'Udpendpoint发现.我还有一个客户端 @ 10.0.0.9,它在同一网络中发现了此类服务.当我运行客户端时,我能够发现服务,但是所发现的服务的终点是Localhost.怎么会发生这种情况,请帮助我. 更多信息, app.config使用了
6 2024-04-25
编程技术问答社区
如何使用C#的File.WriteAllBytes()在挂载的驱动器上进行写入?
我喜欢使用System.IO.File.WriteAllBytes()来保持简单.但是看来,这种方法无法在任何地方使用.要在我的本地系统上写入它可以正常工作. 但是,当我使用System.IO.File.WriteAllBytes()在窗口上写入时,它会产生一个空文件,并且在例外失败: System.UnauthorizedAccessException: Access to the path '/var/windowsshare/file.bin' is denied. ---> System.IO.IOException: Permission denied If I look at the source at https://github.com/dotnet/runtime/blob/c72b54243ade2e1118ab24476220a2eba6057466/src/libraries/System.IO.FileSystem/src/System/IO/F
12 2024-04-25
编程技术问答社区
c#-ping超过超时但报告成功
问题: 在我的代码中,我将ping的超时设置为100ms new Ping().Send(item._deviceIP, 100, new byte[1]) 正确贴合并正确答复,但是ipstatus.time exceed是"错误",并在RTT为100ms之后的成功报告 应该发生什么: 如果ipstatus为a: TimeExceeded(> 100ms),_deviceping应该具有颜色为红色 成功( 设置了任何其他适当的颜色. 发生了什么: 即使在RTT> 100ms 的 类设备 { public IPAddress _deviceIP; public string _deviceMAC; public string _deviceName; public PingReply _devicePing ; public Color _deviceStatus = Color.W
6 2024-04-25
编程技术问答社区
C# UDP监听器线程-Don't Burn CPU with while(true)?
使用以下代码,是否有一种更好的方法来设置UDP收听,而不是while(true)使用Thread.Sleep(10)? public void Start() { socket.Bind(ip); while (true) { data = new byte[1024]; receivedDataLength = socket.ReceiveFrom(data, ref Remote); raw = Encoding.ASCII.GetString(data, 0, receivedDataLength); row = new LogRow(raw); //Console.WriteLine(row.ClientIp); row_queue.Enqueue(row);
8 2024-04-25
编程技术问答社区
TcpClient在Unity支持的所有平台上都可用?
我已经阅读了很多有关使用.NET的TCPCLIENT UNITY的问答,这似乎是可能的.我想知道的是,因为我刚刚通过在网络视图解决方案中投资了很多小时就被烧毁了,只是发现它不支持Windows Store Builds(我可以看到的文档中的任何地方都列出了这一事实).如果我使用TCPClient编写客户端代码,它将在当前支持Unity 4.3的每个平台上使用吗?通常我关心Android,iOS和Windows Store,但是谁知道未来的情况,并且由于跨平台的支持,我正在使用Unity. 我会自己测试...但是我不容易访问所有这些平台,尚未写过测试代码. 我有15年以上的网络编程经验,因此不害怕使用低级别,不需要或不需要任何第三方库...只是与Unity的内置网络有关在所有平台上都支持一件事. 编辑:如果重要的话,我目前正在使用Unity的免费版本. 解决方案 它在Android,iOS和Mac/PC上得到了支持. 它是不支持在 Windows Store
2 2024-04-24
编程技术问答社区
C#应用程序需要引用Citrix环境中的远程工作站
我有一个C#独立的Windows表单应用程序.它连接到需要工作站名称作为标识过程的一部分的后台系统.我正在使用环境.MachineName来获取此功能.但是,使用此应用程序的客户有时会在Citrix环境下运行它,并且在他们希望它引用远程计算机名称时,而不是安装的机器.我以前从未编码过这样的东西,并且不熟悉Citrix(所以我要开场时间).如何获取远程机器名称?任何想法都非常感谢. 提前非常感谢. 解决方案 在Citrix系统上,有一个称为CLIENTNAME的环境变量,该变量具有用户与Citrix连接到Citrix的机器的名称.它只是一个常规的Windows环境变量,因此您可以使用Environment.GetEnvironmentVariable读取它. 您可以像这样快速而肮脏的事情: var workstationName = Environment.GetEnvironmentVariable("CLIENTNAME") ?? Environment.Ma
6 2024-04-24
编程技术问答社区
如何在连接前获得MAC地址?
我的情况是我在网络中播种一系列IP.然后,我尝试连接到成功的ping. 我的目的是连接到具有特定MAC前缀的特定设备.例如,当我ping 100 IP的范围时,我可能会得到20个答复.这些答复包括计算机,打印机,可能是我要连接的硬件. 当前发生的事情是,当我尝试连接到我想要的硬件(即计算机,打印机)以外的任何其他内容时,我会获得超时连接. 这很好,但是,这不是有效的.我想通过使用MAC地址来滤除成功的PING列表,但是,我尚未找到一个解决方案,该解决方案允许我在连接硬件之前寻求MAC地址. 我在这里浏览了大多数MAC问题,但没有一个适合我的需求. 任何想法?? 解决方案 我能够在这里找到解决方案: http://pinvoke. net/default.aspx/iphlpapi/sendarp.html 以下方法返回Mac internal static string GetMAC(string ip) { IP
10 2024-04-24
编程技术问答社区