Tag: network programming

从LAN中的IP地址查找DNS主机名

大家好。 我编写了一个程序,可以顺序扫描局域网的某些部分以供计算机使用(将提供代码)。 但是,当我运行此代码时,它只返回正在运行的计算机的DNS HostName。 我研究过使用WMI,但我不能,因为我不会总是对所找到的计算机有所了解。 有没有其他方法可以找到本地计算机HostName? 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 pingSender = new Ping(); PingOptions options = new PingOptions(); options.DontFragment = true; string data = “a”; byte[] buffer = Encoding.ASCII.GetBytes(data); int timeout […]

如何在连接之前获取MAC地址?

我有一种情况,我在网络中ping一系列IP。 然后,我尝试连接到成功的ping。 我的目标是连接到具有特定MAC前缀的特定设备。 例如,当我ping 100个IP的范围时,我可能会得到20个回复。 这些回复包括计算机,打印机,以及我尝试连接的硬件。 目前发生的事情是,当我尝试连接除我想要的硬件(即计算机,打印机)以外的任何东西时,我得到超时连接。 这很好,但效率不高。 我想通过使用MAC地址过滤掉成功的ping列表,但是,我还没有找到允许我在连接硬件之前寻找MAC地址的解决方案。 我在这里查看了大多数MAC问题,但没有一个符合我的需求。 有任何想法吗??

序列化和发送协议缓冲消息

我在c#中写了这个protobuf消息 C#客户端: public AddressBook InitializeAdressBook() { Person newContact = new Person(); AddressBook addressBookBuilder = new AddressBook(); Person john = new Person(); john.id=1234; john.name=”John Doe”; john.email=”jdoe@example.com”; Person.PhoneNumber nr = new Person.PhoneNumber(); nr.number=”5554321″; john.phone.Add(nr); addressBookBuilder.person.Add(john); TextBox.Text += (“Client: Initialisiert? ” + addressBookBuilder.ToString()) + “\t” + “\n”; TextBox.Text += ” Erster Person ” + addressBookBuilder.person.First().name + “\t” + […]

如何获取域控制器IP地址

如何使用C#编程方式获取域控制器IP地址?

如何从任何IP和任何端口接收UDP数据包?

我想用C#的UdpClient来监听任何收到的UDP数据包。 我想从任何IP和任何端口接收数据包。 我尝试了以下方法: UdpClient udpClient = new UdpClient(0); IPEndPoint ep = new IPEndPoint(IPAddress.Any, 0); byte[] data = udpClient.Receive(ref ep); 但没有成功。 有谁知道什么是错的? 提前致谢!

通过IPv6获取远程MAC地址

嘿伙计们,我在网上寻找解决方案,但我一无所获! 🙁 是否可以通过IPv6(没有WMI)从同一网络中的另一台PC获取MAC? 使用IPv4很容易(ARP)。 IPv6使用“邻居发现协议”(NDP)来获取MAC地址。 .Net中有没有这方面的方法? 有什么建议? 谢谢你的帮助! 问候 法比安

有没有这样的RTSP Ping?

我目前正在开发一个WinForm应用程序,使用C#中的RTSP协议从IP摄像机流式传输video。 一切都很好。 该应用程序的部分要求包括检查IP摄像头是否在线的function。 所以我使用System.Net.NetworkInformation.Ping类来ping IPfunction。 假设相机的RTSPurl如下rtsp:// [CAMERA IP] :554 / Master0-RTSP / 1.0,我只需要提取[CAMERA IP]部分并使用Ping类来查看相机是否在线使用其IP。 最初,它可以工作直到出现问题,例如,如果输入的IP可能不是预期的IP摄像机(例如计算机的IP),如果输入的设备的输入IP在线,则pingfunction仍然有效。 我试图搜索像RTSP ping这样的东西但找不到。 希望对此事有任何建议或意见。 非常感谢C#中的任何示例。 谢谢你的关注。

从UdpClient收到的UDP包中获取客户端IP

我正在System.Net.Sockets.UdpClient类的帮助下开发一个动作多人游戏。 它适用于两个玩家,因此应该打开服务器并等待传入​​的连接。 另一个玩家输入主机IP并尝试发送“ping”,以确保可以连接并且有一个打开的服务器。 主持人然后用“乒乓球”回应。 一旦游戏运行,两者都必须向对方发送udp消息,因此他们都需要对手的ip地址。 当然服务器也可以输入客户端IP,但这对我来说似乎是不必要的。 当收到“ping”消息时,如何从udp包中获取客户端IP? 这是我的接收代码(等待ping的服务器): private void ListenForPing() { while (!closeEverything) { var deserializer = new ASCIIEncoding(); IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0); byte[] recData = udp.Receive(ref anyIP); string ping = deserializer.GetString(recData); if (ping == “ping”) { Console.WriteLine(“Ping received.”); InvokePingReceiveEvent(); } } }

是否可以在不使用WMI的情况下获得网络适配器的PnPDeviceId?

我一直试图使用p / invoke setupapi调用获取给定网络适配器的PnPDeviceId但没有成功。 我不情愿地决定使用WMI,如下所示: public static string GetPnpDeviceId(string mac) { ManagementObjectCollection mo = Management.GetCollection(“Win32_NetworkAdapter”, “PNPDeviceID”, “MACAddress = ‘” + mac + “‘”); return GetFirstValueString(mo, “PNPDeviceID”); } public static ManagementObjectCollection GetCollection(string WMIClass, string WMISelect=”*”, string WMIWhere=””) { string qry = “SELECT ” + WMISelect + ” FROM ” + WMIClass + (WMIWhere == “” ? […]

udp数据包没有通过

我有以下设置: 专用服务器 – >互联网 – >调制解调器(telenet) – >路由器 – >客户端 客户端启动与服务器的tcp连接以在服务器上注册自己,并通过以下信息提供: 客户端的mac地址 外部IP; 这是通过使用whatsmyip.org的webclient字符串下载来检索的 服务器上发生了一些更新,当然需要通知客户端,因此客户端可以自己启动同步会话: 为了通知客户端,服务器从服务器向调制解调器发送udp数据包(之前从客户端收到的外部IP) ,同时客户端正在侦听路由器后面的udp数据包。 问题是我没有收到任何数据包..我的情况是否可能,我该怎么办? 要求: 通过在路由器上启用端口转发来解决此问题不是一种选择 服务器有一个固定的IP 客户端有时可能会脱离Internet 解决方案必须适用于不同类型的路由器 发送和接收数据包的两个端口都是相同的 所有编程都在C#中完成 服务器在有更新时通知客户端,客户端可能永远不会轮询服务器以获取更新以防止过载(如果多个客户端同时执行此操作) Greets Daan并提前感谢 编辑: 服务器的代码示例: UdpClient udpSender = new UdpClient(); IPEndPoint localServerGateway = new IPEndPoint(IPAddress.Parse(externalIp), 8003); string message = “testmessage”; byte[] messageBytes = Encoding.ASCII.GetBytes(message); try { udpSender.Send(messageBytes, messageBytes.Length, localServerGateway); } […]