Articles of networking

制作拦截Windows中的networkingstream量的程序

我问的是“如何为Windows制作软件防火墙”,但其实并不那么复杂。 我很惊讶,在search这个时候我可以find这么一点,只是偶尔提到钩子。 所以,如果有人能指引我正确的方向,我将非常感激。 我期望用C来做这件事(不过如果还有另外一种语言你会认为会更好,我完全可以接受)。 我想创build一个监视networkingstream量的应用程序,可以提取IP地址(传入源,传出目标),并可以阻止上述networking活动。 这看起来好像在内核中要容易得多,但是我不想在那里混淆,也不能在Windows中访问。 我并不担心效率,也不想制造个人防火墙。 这只是一个关于IP地址的实验。 任何指针? 注意:重要的是我可以阻止networking某些networking活动,而不仅仅是监视它

arp -a和路由打印

我需要编写一个显示这些信息的程序: netstat的 TCP / UDP连接 有关IP ipconfig / all的信息 ARP-A 路线打印 我已经有了其中的大部分,但是我在route print和arp -a遇到了问题。 我不想使用Process.Start()执行这个命令,因为它看起来不太壮观: Process p = new Process (); p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; p.StartInfo.UseShellExecute = false; p.StartInfo.FileName = "route"; p.StartInfo.Arguments = "PRINT"; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.CreateNoWindow = true; p.StartInfo.StandardOutputEncoding = Encoding.Default; p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; p.Start(); TextBox1.Text = p.StandardOutput.ReadToEnd(); 我想使用foreach循环来获取数据到ListView或DataGrid列。 有没有人能够帮助我? 我怎样才能得到这个数据到每个列:目的地,networking掩码,网关,接口,指标和永久路由? 而在ARP的情况下,Internet地址types的物理地址?

无需路由器直接通过无线访问Windows Server 2012上的IIS

刚刚买了一台新的服务器,并安装了Windows Server 2012。 服务器有一个无线设备。 我打算在该服务器上部署Web应用程序,并希望所有用户通过无线方式直接连接到该服务器(不使用任何路由器/交换机)。 所以基本上,Windows Server 2012已经安装了DHCP分配IP地址给无线连接到该服务器的任何用户; 并且用户能够导航到部署在IIS中的网站。 如何configurationWindows Server 2012来提供此function? 最终的结果是: – >用户可以看到由Windows服务器广播的WIFI名称 – >然后用户连接到它与一些安全保护(例如:WEP) – >然后用户打开他的浏览器,并导航到通过input本地IP地址来访问Web应用程序。 谢谢你的任何build议。

如何从Windows程序访问类似netstat的以太网统计信息

如何从C / C ++代码如netstat -e访问以太网统计信息? Interface Statistics Received Sent Bytes 21010071 15425579 Unicast packets 95512 94166 Non-unicast packets 12510 7 Discards 0 0 Errors 0 3 Unknown protocols 0

如何获得LAN上的活动IP地址,MAC地址和NetBIOS名称列表?

如何获得LAN上的活动IP地址,MAC地址和NetBIOS名称列表? 我想为局域网上的每台主机获取NetBIOS名称,IP和MAC地址 ,最好不必走到每一台PC上,并自己记下这些东西。 如何使用Windows Script Host / PowerShell /做什么?

Windows不会从所有接口接收组播IPv6数据包

我试图在Windows上使用这个Python 2.7代码接收IPv6多播数据包(发送到ff02 :: 1地址) import socket import win_inet_pton import struct socket.IPPROTO_IPV6=41 #because using python 2.7 on wondows PORT = 1234 UDP_BROADCAST_IPv6 = "ff02::1" sock = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM, socket.IPPROTO_UDP) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind(("",PORT)) # not working with "::" either # Join multicast group addrinfo = socket.getaddrinfo(UDP_BROADCAST_IPv6, None)[0] group = socket.inet_pton(addrinfo[0], addrinfo[4][0]) mreq = group + struct.pack('@I', […]

Python套接字不能正确closures连接

我是新来的套接字编程,遇到了一个令人费解的问题: 我有一个Windows程序,我不能改变(专有软件),但试图连接到一个特定的IP和端口与TCP套接字。 在我的Linux机器上,我写了一个小python脚本来服务套接字赢得前卫。 这工作正常,直到我杀了我的程序在Linux上。 最初的服务器套接字没有按照指定closures,我无法重新启动我的程序,直到套接字被垃圾回收。 如果我尝试与Linux套接字(在一个单独的Python脚本)相同,我没有任何问题。 这是一个最小的代码示例: import socket server = socket.socket() server.bind(('192.168.0.111', 50001)) server.listen(1) conn, addr = server.accept() print 'Connection established' running = True while running: try: data = conn.recv(4096) except KeyboardInterrupt: conn.close() running = False else: if data: print data else: conn.close() running = False server.close() 如果我用Ctrl-C杀死它,它会正常退出。 但重新启动脚本后,我得到一个socket.error,说明地址已被使用。 一分钟左右程序再次运行。 我也尝试closures之前closures(又名conn.shutdown(2)和server.shutdown …),但没有任何效果。 有没有更好的“正确”的方式来closuresWindows套接字? 一般来说,我是否错过了一些关于socket的基本知识? […]

在Windows的select.select中使用sys.stdin

可能重复: 可以select()与Windows下的Python文件一起使用? 在UNIX上,我能够将sys.stdin传递给Python中的select.select 。 我正在尝试在Windows上执行此操作,但在Windows上的Python select.select将不允许执行此操作。 为了更准确地描述我在做什么,请参阅https://github.com/eldarion/gondor-client/blob/ccbbf9d4b61ecbc2f66f510b993eb5fba0d81c09/gondor/run.py 。 unix_run_poll函数是我正在尝试在Windows上完成的。 基本的想法是,我有一个套接字连接到一个服务器,已经连接streamstdin,标准输出,stderr到远程运行的进程,我正在与本地客户端交互,使它看起来好像本地客户端正在运行处理。 win32_run_poll是我将它移植到Windows上的尝试,它确实有效。 这是一个有点不可思议的方法,国际海事组织,是非常糟糕的。 有没有人有这样的build议可以改善? 对win32api的依赖是不太理想的,但我没有保留它。

捕获networking状态更改事件

当互联网连接在丢失后重新build立时,我试图获得事件。 这是我正在开发的数据传输软件。 如果在数据传输过程中丢失了networking,我想在返回时收到通知,并自动继续传输。 我当然可以创build一个单独的线程,并用一个计时器检查一下networking,但也许有一个更好的select。 我正在开发的Windows主要是在C + +(不是.net)。 我也可以使用wxwidgets(我使用它的GUI),但我怀疑它提供了任何相关的function。

NetServerEnum创build不会closures的工作线程

当试图解决我以前提出的SO问题时,我发现即使没有我的线程,也会出现问题。 我现在拥有的是一个非常简单的单线程代码,它调用了NetServerEnum() 。 当返回时,它调用NetApiBufferFree()并从main返回,这应该结束进程。 在这一点上,我的线程真正结束,但进程不会退出,因为有4个线程打开(而不是我): 1 * ntdll.dll!TplsTimerSet+0x7c0 (堆栈位于ntdll.dll!WaitForMultipleObjects ) (这个调用NetServerEnum()打开) 3 * ndll.dll!RtValidateHeap+0x170 (堆栈位于ntdll.dll!ZwWaitWorkViaWorkerFactory+0xa ) (这些是我的代码返回时打开) 更新:如果我杀死运行ntdll.dll!TplsTimerSet + 0x7c0(使用进程资源pipe理器)的线程,返回main() ,程序正常退出。 我认为这可能是有用的知道。 更新2:(一些更多的技术信息)我正在使用: MS Visual Studio 2010年终极x64 (SP1Rel) Win7企业SP1代码是C(但编译为c + +开关是)子系统:WINDOWS编译器:cl.exe(使用IDE)所有其他参数是默认的。 我使用自修改的入口点( /ENTRY:"entry" ),它是唯一的function在我的程序中): int entry(void) { SERVER_INFO_101* si; DWORD a,b; NET_API_STATUS c; c = NetServerEnum ( NULL , 101 , (LPBYTE*) &si , MAX_PREFERRED_LENGTH […]