Articles of networking

在Windows中为套接字使用特定的networking接口

除了更改路由表之外,Windows中是否有可靠的方法来强制新创build的套接字使用特定的networking接口? 我明白bind()到接口的IP地址并不能保证这一点。

免费networking监视器

我在整合两种产品时遇到了麻烦,其中一种是我的,他们似乎没有在说话。 所以我想确保他们沟通正确。 我看了一下networking监视器,发现了TCP Spy。 这个方法可行,但是一次只能显示对话的一面(它必须在本地运行),我希望同时看到双方 – 但是不能运行TCP Spy的两个副本。 我打了Sourceforge,但似乎没有跳出 – 我是一个Windows开发人员,我没有安装Perl。 我发现了其他一些蹩脚的软件,而且完全没用,所以我想知道SO们是用什么来观看TCP对话的? 顺便说一句 – “不在这里写的”产品不是浏览器。

以编程方式在Windows 7上使用.NET创build/销毁网桥

我试图以编程方式创build和销毁Windows 7上的网桥。 在技​​术上,我很乐意留在.NET 4领域(PInvokes很好,ofc),但是使用C ++是一个select。 到目前为止,我的研究发现,对于configuration, netsh命令是要走的路线 。 然而,似乎没有select与他们搭起一座新的桥梁。 我目前正在研究这个使用INetCfg API的程序,但是看起来这个程序,或者更具体的API,不能(再)build立一个新的桥接。 如果有人能够帮助解决这个问题,任何forms的帮助都是非常感谢的。 [更新:]看来,蝾螈桥梁实施使用驱动程序,然后绑定到两个设备。 我还不能提供大部分的信息,所以还是有任何帮助。

如何防止出现新的连接的networking位置对话框(家庭,工作,公共)?

如果连接不存在,我写了一个使用USB 3G Dongle连接到互联网的软件。 当软件加载时,它检测互联网是否可用,如果没有,则创build拨号连接(通过RAS),然后拨打它。 如果这是第一次发生,networking位置对话框出现,要求用户select是否在家,工作或公共。 有无论如何,我可以编程方式设置连接的networking位置,甚至告诉Windows不显示对话框,并自动将位置设置为公共? 干杯 加文 编辑:对于ScottM public bool Connect(bool monitorSignalUpdates) { RasPhoneBook rpb = new RasPhoneBook(); rpb.Open(true); if (!rpb.Entries.Contains("3G Connection")) { rpb.Entries.Add(RasEntry.CreateBroadbandEntry("3G Connection", RasDevice.GetDeviceByName("HUAWEI Mobile Connect – 3G Modem", RasDeviceType.Modem), true)); } _rd = new RasDialer(); _rd.EntryName = "3G Connection"; _rd.PhoneNumber = "*99#"; try { _rd.Dial(); if (monitorSignalUpdates) { _queryPort.DataReceived += new […]

如何获得Linux / Mac OSX中的networking适配器统计信息?

我正在寻找一种方法来获得在Linux和MacOSX的Cnetworking统计信息。 具体来说,我需要监视系统中每个networking适配器上传和下载的字节数 – 我不需要做数据包检查,也不需要区分协议,只需要一个“总字节数”的计数器,我可以间隔地进行轮询没事的。 在Windows中,我可以通过GetIfTable(列出networking适配器)和GetIfEntry(读取统计信息)使用iphlpapi.dll库来完成此操作,但找不到Linux / OSX等价物。 我对C的知识是相当基础的,所以我希望能有一个不太涉及的解决scheme。 任何帮助将非常感激!

使用C#/ C ++,是否可以限制networkingstream量?

我正在开发一个家长监控/跟踪应用程序,具有locking所有互联网活动的function。 虽然禁用networking适配器似乎是一个简单的解决scheme,但应用程序必须能够远程重新启动互联网,因此networking需要保持启用状态,并达到一定的限制。 不幸的是,我还没有find一个合适的方法来实现这一点。 没有这个function,应用程序在水中几乎死了。 所以我打了一个巨大的路障,我愿意接受任何build议。 用我的应用程序,我需要达到两个要求: 放下所有互联网活动。 接着 只打开Internet活动到指定的端口和IP地址。 (我的服务,将被调查) 简单的目标,对吧? 不是最近。 虽然我期望在C#中实现这一点,但是我明白这可能是一个长期的尝试,我可以通过我的应用程序向C ++解决scheme开放。 另外请注意,我不能在用户的系统上安装任何第三方软件,因为这个解决scheme需要包罗万象。 提前致谢!

从IPv4地址获取networking接口名称

给定一个IPv4地址,我怎样才能获得其相关的networking接口名称,如“以太网适配器本地连接”,在Windows中使用C + +? 或者,如何获得本地计算机的networking接口名称和IPv4地址列表? 我只能使用getaddrinfo和inet_ntoa获取IPv4地址。

在Windows上的Python 3.6中的原始套接字数据包嗅探器

我试图嗅探数据包,但我得到奇怪的输出,我不明白原因。 所以这是我的代码, 请帮助我 (我在Windows 8.1上使用Python 3.6) 码: import socket import struct import binascii import textwrap def main(): # Get host host = socket.gethostbyname(socket.gethostname()) print('IP: {}'.format(host)) # Create a raw socket and bind it conn = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP) conn.bind((host, 0)) # Include IP headers conn.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1) # Enable promiscuous mode conn.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON) while True: […]

Windows:如何获得相机支持的决议?

所以要获取摄像机列表并让用户select一个(C ++,Boost,dshow,windows),我使用这样的代码: #include "StdAfx.h" #include "list.h" #include <windows.h> #include <dshow.h> #include <boost/lexical_cast.hpp> HRESULT CamerasList::EnumerateDevices( REFGUID category, IEnumMoniker **ppEnum ) { // Create the System Device Enumerator. ICreateDevEnum *pDevEnum; HRESULT hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pDevEnum)); if (SUCCEEDED(hr)) { // Create an enumerator for the category. hr = pDevEnum->CreateClassEnumerator(category, ppEnum, 0); if (hr == S_FALSE) { […]

多个进程在同一个端口上侦听?

我想了解如何启动多个进程在Windows XP上侦听同一个TCP {IP,Port}对。 例如,我可以启动两个在端口371上侦听的ncat.exe程序。第二个启动时没有任何问题,接收到连接,而第一个没有。 一旦最后开始的过程终止,第一个接收它们。 netstat -a -n | find "LISTENING" TCP 0.0.0.0:371 0.0.0.0:0 LISTENING TCP 0.0.0.0:371 0.0.0.0:0 LISTENING 假设这是一个Windows(XP)的行为,它怎么可能是一个安全可靠的行为? 这意味着可以“重载”任何已经监听的端口,而不是获取通常的“已经使用的地址”错误消息,并且简单地绕过带有规则的防火墙,只是说“端口371上的任何传入的TCP连接被允许”。