Articles of networking

以编程方式确定用户在Windows上最后修改文件的用户?

我一直负责在C#中编写一个简单的命令行实用程序,该实用程序将监视多个用户将访问的服务器上的目录以复制/剪切/粘贴/查看数据。 我使用FileSystemWatcher来做到这一点,但缺乏一些function。 是否有可能确定用户或至less从文件被访问/修改的位置计算机名称 ? (注意:这不一定要用FileSystemWatcher,我正在寻找任何方法来做到这一点。)

在Windows中保留一个TCP端口

我想保留一个TCP端口,稍后再被一个服务绑定,以便Windows在分配随机端口号时不会无意中使用相同的号码。 我知道这是可能的通过registry和重新启动,但我想避免这样一个严重的解决scheme。 一个进程如何在不实际绑定/监听的情况下保留一个端口,然后安全地(即避免竞态条件)根据请求将其交给另一个进程? 端口号不需要事先确定。 第一个进程可以获得一个随机的端口号,并将其传递给请求进程。 编辑:它发生在我身上,我的问题是有点陈述。 我真正想要的是将dynamic端口号的分配从bind-to-port-zero操作中分离出来。 这意味着不仅要避免意外的随机分配该端口号,而且还要防止在此期间任何其他进程绑定到相同的地址/端口。 换句话说,我想让一个进程启动bind-to-port-zero操作 – 立即学习将被使用的端口号 – 并让指定的第二个进程在将来完成绑定操作。 目前,我能想到的最接近的解决方法是,第一个进程立即绑定到地址/ 0,并保持绑定,直到第二个进程请求它,此时解除绑定并告知其他进程的端口号获得,然后明确绑定到地址/端口。 这有两个问题:1)我宁愿不要束缚,直到第二个过程出现。 2)第三方可能意外(或故意)篡夺港口的时间间隔很短。 背景 你可能会好奇我为什么要做这么奇怪的事情。 我一直在玩ZeroMQ,一个主要的限制是没有Windows上的ipc://传输。 令我感到震惊的是,端口映射器进程(类似于RPC端点映射器,或者Erlang的epmd)只是使用具有dynamic端口分配的tcp:// transport来实现解决scheme的票据。 然而,ZeroMQ客户端和服务器被允许连接不顺序(即在服务器绑定之前,客户端连接不是错误的),所以我试图找出连接客户端如何发现 – 一个非常高度确定性 – 在服务器实际绑定到端口之前将用于通信的端口。

CancelSynchronousIo与WNetAddConnection2一起使用吗?

我正在尝试并取消与CancelSynchronousIo对WNetAddConnection2的调用。 对CancelSynchronousIo调用成功,但没有任何事实上被取消。 我正在使用在Windows 7 x64上运行的32位控制台应用程序。 有没有人做到这一点成功? 我在做什么愚蠢的事情? 以下是一个示例控制台应用程序(需要与mpr.lib链接): DWORD WINAPI ConnectThread(LPVOID param) { NETRESOURCE nr; memset(&nr, 0, sizeof(nr)); nr.dwType = RESOURCETYPE_ANY; nr.lpRemoteName = L"\\\\8.8.8.8\\bog"; // result is ERROR_BAD_NETPATH (ie the call isn't cancelled) DWORD result = WNetAddConnection2(&nr, L"pass", L"user", CONNECT_TEMPORARY); return 0; } int _tmain(int argc, _TCHAR* argv[]) { // Create a new thread to […]

时间函数在mingw

我正在尝试执行此页面中给出的代码 http://msdn.microsoft.com/en-us/library/windows/desktop/aa366062%28v=vs.85%29.aspx 我正在使用mingw(gcc)来编译这个。 但下面的行不能被编译。 我已经包含了'time.h'。 我search,但无法find这个'_localtime31_s'或其等价物在gcc中。 error = _localtime32_s(&newtime, (__time32_t*) &pAdapter->LeaseObtained); error = asctime_s(buffer, 32, &newtime); 这里的时间在哪里? 谢谢

在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需要包罗万象。 提前致谢!