Articles of networking

反向DNS在Windows上查找阻止几秒钟的无法parsing的IP地址

我正在使用Java的InetAddress.getHostName()来执行一些反向DNS查找,并且似乎有什么错误的时间。 这是一个代码片段: public static void main(String[] args) throws IOException { byte[][] addresses = new byte[][] { { 10, (byte) 0, (byte) 0, (byte) 138 } , new byte[] { (byte) 216, (byte) 239, (byte) 49, (byte) 245 } ,{ 8, (byte) 8, (byte) 8, (byte) 8 } }; for (byte[] addr : addresses) { InetAddress […]

增加IP地址

在那个程序中,我想递增IP地址。 我看到这样的输出: 125.23.45.67 126.23.45.67 127.23.45.67 128.23.45.67 129.23.45.67 130.23.45.67 131.23.45.67 132.23.45.67 133.23.45.67 134.23.45.67 但是我想看到这样的输出: 124.23.45.67 124.23.45.68 124.23.45.68 124.23.45.70 124.23.45.71 124.23.45.72 124.23.45.73 124.23.45.74 124.23.45.75 124.23.45.76 这里是程序代码: #include <stdlib.h> #include <stdio.h> #include <iostream> using namespace std; #include "winsock2.h" #pragma comment(lib,"wsock32.lib") void main() { in_addr adr1; in_addr adr2; int i; adr1.s_addr=inet_addr("124.23.45.67"); adr2.s_addr=inet_addr("as.34.34.56"); if (adr1.s_addr!=INADDR_NONE) cout << " adr1 correct" […]

套接字OSError 使连接()尝试过快

我有一个客户端需要重复轮询,看看是否有预期的服务器,并优雅地处理这个事实,可能不是很长的时间。 看下面的testing脚本: import socket, time s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(0.1) delay = 2 connected = False while not connected: try: s.connect(("localhost", 50000)) # I'm running my test server locally connected = True except socket.timeout: print("Timed out. Waiting " + str(round(delay, 1)) + "s before next attempt.") time.sleep(delay) delay -= 0.1 结果: Timed out. Waiting 2s […]

用Python编程检测Windows XP上的系统代理设置

我开发了一家跨国公司使用的关键应用程序。 全球各地的办事处用户需要能够安装这个应用程序。 该应用程序实际上是Excel的插件,我们有一个基于Setuptools easy_install的自动安装程序,可以确保在用户切换到Excel时自动安装或更新项目的所有依赖项。 这一切都非常优雅,因为用户很less意识到所有的安装完全发生在后台。 不幸的是,我们正在扩大和开设新的办事处,这些办事处都有不同的代理设置 这些设置似乎每天都在变化,所以我们无法跟上那些没有告诉我们的外包安全人员。 它很烂,但我们只需要解决它。 我想以编程方式检测用户运行的Windows工作站上的系统级代理设置: 组织中的每个人都运行Windows XP和Internet Explorer。 我已经证实,每个人都可以从IE下载我们的东西,不pipe它们在哪里,都不会有问题。 所以我需要做的就是检测IE正在使用的代理设置,并使Setuptools使用这些设置。 理论上所有这些信息应该在registry中。但是有没有更好的方法来find它,保证不会随着人们升级IE而改变? 例如,是否可以使用Windows API调用来发现代理设置? 综上所述: 我们在Windows XP上使用Python 2.4.4 我们需要检测Internet Explorer代理设置(例如主机,端口和代理types) 我将使用这些信息dynamic地重新configurationeasy_install,以便它可以通过代理下载egg文件。 UPDATE0: 我忘了一个重要的细节:每个站点都有一个自动configuration“pac”文件。 Windows \ CurrentVersion \ InternetSettings \ AutoConfigURL中有一个关键字,指向本地服务器上的HTTP文档,其中包含看起来像一个JavaScript文件的内容。 pac脚本基本上是一系列嵌套的if语句,它们将URL与regexp进行比较,然后返回所选代理服务器的主机名。 该脚本是一个名为FindProxyForURL(url,host)的单个javascript函数, 因此,挑战是找出任何给定的服务器使用哪个代理。 唯一100%保证的方法是查找pac文件并从Python中调用Javascript函数。 有什么build议么? 有没有更优雅的方式来做到这一点?

如何调整TCP以实现高性能的单向传输?

我的(networking)客户端每200毫秒向我的服务器发送50到100 KB的数据包。 有多达300个客户。 服务器什么也不发送给客户 服务器(专用)和客户端在LAN中。 如何调整TCPconfiguration以获得更好的性能? Windows Server 2003或2008上的服务器,Windows 2000及更高版本上的客户端。 例如TCP窗口大小。 改变这个参数有帮助吗? 还要别的吗? 任何特殊的sockets选项? [编辑]:实际上在不同的模式下数据包可以达到5MB

Windows中的打印机通知如何与networking打印机配合使用?

我有一个应用程序需要使用ShellExecute和“打印”动词打印使用相关的应用程序打印不同types的文件。 我的应用程序需要(希望)可靠地知道一个打印作业何时完成处理,并可以发出下一个作业。 我使用FindNextPrinterChangeNotification完成了这一切,使用本地打印机(例如通过USB进行安装)似乎一切正常,但是如果涉及到networking打印机,则会出现完全不同的行为。 我的一个客户使用我的应用程序与networking打印机,意味着一个专业的打印机与自己的打印服务器embedded,安装在Windows Server 2008 R2和共享这个安装的打印机使用Windows到它的客户端。 在这种情况下,FindNextPrinterChangeNotification总是返回成功,但是它返回的结构总是有PRINTER_NOTIFY_INFO_DISCARDED标志。 我可以用自己的Windows Server 2008 R2来重现这种行为,而不是使用自己的embedded式打印机服务器导出打印机,而只是在本地安装的FreePDF XP。 另外,如果我们在我们的一个Ubuntu开发服务器上使用samba,cups和cups-pdf,我会得到相同的行为:Samba成功导出cups-pdf打印机,如果我将它安装在Windows 7开发机器中并与我的打印一起使用应用程序,FindNextPrinterChangeNotification总是成功返回,但总是与标志PRINTER_NOTIFY_INFO_DISCARDED设置。 我的客户之后通过打印机的embedded式打印服务器直接将其打印机安装到客户端,并告诉我,我的打印应用程序现在可以像使用本地打印机一样工作。 意思是没有更多的事件与PRINTER_NOTIFY_INFO_DISCARDED标志设置为我的应用程序的版本,这是一个错误状态,将退出应用程序。 我试图再次使用cups-pdf来重现,这次我没有安装由Samba导出的打印机,而是直接使用URL http://domain.example.org:631/printers/指定打印机的打印机名称PDF 。 我可以在Windows中成功地使用这个打印机,但是我的应用程序再次出现奇怪的事件 这一次我不会得到与标志PRINTER_NOTIFY_INFO_DISCARDED设置的结果,但ppPrinterNotifyInfo总是NULL,我根本没有得到任何结果,但FindNextPrinterChangeNotification成功返回。 微软提供了一个有关防火墙的说明,打印机通知可能会被客户端阻止,但我不认为这是我的情况,因为我已经testing了与禁用的防火墙相同的scheme,启用防火墙结果不同,取决于如何我的开发机器正在对打印机说话,我的Windows 7防火墙设置似乎默认允许打印机通信。 长话短说:对于不同的networking打印机,我没有发现任何可靠的打印机通知。 一切取决于打印机驱动程序? 看起来不是这样的,因为如果Samba导出打印机或者直接使用http,它会有所不同。 从我读过的内容来看,Windows 7使用客户端渲染打印作业,之后将作业发送到networking假脱机程序,我可以在本地假脱机程序中看到这些作业很长时间。 为什么我不收到通知? 是否Samba和打印机共享使用Windows服务器devise不应该发布打印机通知? 我找不到任何信息说。 我真的很感激任何帮助或提示文件,可以提供一些这方面的光。 谢谢!

启用networking附加function后,将自动configurationIP地址设置

我正在为Windows Vista和Visual Studio C ++开发一个应用程序,其中我必须分配静态IP地址到网卡并build立连接。 为此,我inputregistry中的IP值,并将“启用DHCP”值设置为0.然后,我需要禁用然后启用网卡才能使这些值生效。 为此,我在下面的代码中使用“INetConnectionManager”: CoInitialize(0); typedef void (__stdcall * PNcFreeNetconProperties)(NETCON_PROPERTIES* pProps); HMODULE hmod = LoadLibrary(L"netshell.dll"); if (!hmod) return false; LPNcFreeNetconProperties NcFreeNetconProperties = (LPNcFreeNetconProperties)GetProcAddress(hmod, "NcFreeNetconProperties"); if (!NcFreeNetconProperties ) return false; INetConnectionManager * pMan = 0; HRESULT hres = CoCreateInstance(CLSID_ConnectionManager, 0, CLSCTX_ALL, __uuidof(INetConnectionManager), (void**)&pMan); if (SUCCEEDED(hres)) { IEnumNetConnection * pEnum = 0; hres = […]

用于检查服务器是否在线的批处理脚本

我基本上想要一个Windows批处理脚本,通过一个服务器列表,并检查每个服务器与一个ping,如果它在线。 服务器列表应该是一个简单的纯文本文件,应该看起来像这样: … "Google" www.google.com "Node1" 221.12.123.1 "Download Server" dl.myserver.com "Login Server" login.myserver.com … 这是一个简单的程序应该做的事情: 将列表中所有服务器的描述列表打印到屏幕上。 ping第一台服务器服务器4次,如果一次ping成功,它应该返回在线,如果所有4个ping失败它应该离线。 在打印列表中的第一个服务器旁边在线或离线打印 对列表中的所有其他服务器运行步骤2和3。 输出应该如下所示: … Google: online Stackoverflow: online Node1: online Download Server: offline Login server: offline … 我只想知道这是甚至可以在(Windows)批处理和如何做到这一点。 如果批量不可能,我应该使用哪种编程语言? 是否有可能在Python中编程? 我也会非常感激,如果有人可以发布代码如何做到这一点,谢谢!

Windows套接字编程在C

我正在参加一个networking课,教授正在读这本书。 不用说,我不知道我在做什么。 我们的学期项目是从我们的教科书中复制代码并build立一个客户 – 服务器networking。 直接复制本书中的代码而不做任何修改。 这本书在代码中有错误(缺less分号,额外的版本),但我至less编译了代码。 但是,我遇到了一堆链接错误。 示例:Error 1错误LNK2019:在函数_main中引用的未parsing的外部符号impsendto @ 24 C:\ Users \ Documents \ Visual Studio 2010 \ Projects \ Client_Server \ Client_Server \ Client_Server \ Server.obj Client_Server 我查了错误代码,我想代码试图链接到头文件中不存在的定义。 我有一个困难的时间修复LNK错误与语法错误。 但就像我说,我不知道如何去解决这个问题。 我正在发送服务器端的代码,我遇到了客户端相同的错误。 include <stdio.h> include <string.h> include <WinSock2.h> include <WinSock.h> include <stdint.h> include <time.h> int main(void) { int s; int len; char […]

如何检查networking共享EXE文件是否被多个用户使用?

我有一个应用程序位于networking共享文件夹中的服务器上。 networking中的许多用户可以同时使用该文件。 我想执行该EXE文件的更新,为此,我想知道谁在networking(除了我)正在使用该文件。 是否有可能以编程方式检查? 例如:要列出所有正在使用该文件的用户名? 或至less检索该文件上的锁的数量? 谢谢。