在局域网中可以实现,只要指定连接192.168.0.3 port:1234用Socket就可以直接连接了,如果被控方电脑只有一台计算机的话,那么直接输入IP也应该可以了。但是比如我们公司,N个人共用一台路由,对外IP是一样的,如果我想在外面控制我的电脑的话请问用什么方法可以连接上?因为对外的话我们公司电脑IP是一样的;

解决方案 »

  1.   

    Windows端口映射实现外网访问内网
      

  2.   

    其实C#并不太适合做这种东西,最好还是直接用C或者C++做比较好一点
      

  3.   


    此言差矣, C#可以做到快速开发,其实很简单,只要你的控制端,部署在公网就可以了,这样,受控制,安装了软件后,自动联接你们在公网的控制端Socket,这样就可以建立连接了,之后你应该明白怎么弄了
      

  4.   


    兄弟是你想太多了
    其实这个和你的局域网是一样的编程, 你在做网络编程的时候,就要抛开网络类型的想法。 不然ISO为什么要把网络模型搞出那么多层!做了那么多层,就是为了上层的开发,只做上层的。下层的只做自己的。
    这个局域网和互联网,其实这个具体怎么联,这个是底层的事情,而你在TCP层,需要做的就是,给你的程序,指定一个可以访问的IP,在互联网的时候,这个IP就是公网IP, 在局域网的时候,谁联谁都可以,因为他们是直接互通的。  但在互联网的时候,因为,公网上的控制端无法直接连接局域网内的受控端(因为不知道IP)。那怎么办。那很简单,就不要让控制端,去联受控端,而是换一个方向。让受端端自动连接控制端,因为你可以控制端部署在公网上,可以有一个公网IP。这个IP可以在你开发受控端的时候就写死了。这样在局域网的受控端当然可以访问公网上的任务机器。总之一句,网络编程只要有通的IP地址就可以直接通信(当然这里的网络编程是指TCP/IP)。而不要管他是局域网还是广域网。
      

  5.   

    对啊对啊,应该就是这样,但是按你的道理控制端就应该是固定的IP咯?也就是只能在固定的PC上控制?
      

  6.   

    不是固定的pc,是固定的IP。或者域名。
    控制方部署在服务器。用个域名是最好的。
      

  7.   

    那就是说我要控制他还要在服务器上去操作咯……
    我现在想要做的是在人任何上网的地方都可以控制,不过要先到我的服务器上下载个Activex控件,这样就可以,比如我看到公司的视频监控,在任何只有能打开我们公司的网站的地方都可以监控我们……
      

  8.   

    类似花生壳?将我的IP每隔5分钟发一次到他的服务器?就算我发到服务器,服务器知道我的IP和端口了,受控制端怎么得到我的IP和端口类和我联系?
      

  9.   

    C# NAT网络打洞……不知道这个方法能不能达到目的,正在研究中……顺便顶下我的帖子
      

  10.   

    哥们不知道你灰鸽子会用吗?  知道原理吗? 
    如果不知道的话,小弟献丑了:
    首先你的采用反向链接,而不是从主机出发去连接被控端,而是被控端(server木马程序)去连接你的主机
    (这样你的主机就可以找到他了,就算他在局域网内),那么server怎么能知道你主机的IP地址呢?因为有可能是拨号的ADSL,就需要一个中转站来弄了,中转站可以是一个域名,然后每次client在连接上公网后,把自己的ip地址更新到ftp服务器上,然后木马端server每隔多少秒查看ftp上的ip地址变化,这样server就能知道client的Ip地址,然后自动和外网有ip的client链接,这样外网就可以控制内网的电脑了,如果你还是不了解,建议上网搜下"灰鸽子原理",然后应用下试试,注意千万别中毒了啊? 哈哈,有分给我吧,我就4分了
      

  11.   

    悲剧的楼主...
    远程控制不难,难的是开机
    如果你只要控制的话,直接用人家的免费软件好了,teamview,上网搜一下就知道怎么用下载使用了
    如果要按公司的需求定制功能,只能自己开发
    我现在就在做这个,也是一个人,5个月了...要想作出全套,涉及到windows服务(不登陆系统的启动),网络编程(C/S架构必须),P2P(打洞穿越nat),图像处理(使用DX拖远程桌面来显示,不打算拖桌面显示可以不用),编写服务器中转(C/S架构,穿越nat都需要)
    功能全实现,一个人得做1年;要是达到商业应用,一个人做得2年一上吧
    楼主你看着办吧
      

  12.   

    day day up,祝楼主早日完成
      

  13.   

    我有个自己做着玩的东西和你这个需求很相似。不过我这个是借助于sqlserver来交换数据,中转了1下所以实时性不是很高。
    服务端肯定得放在公网上,由客户端来主动连接服务端接收指令。客户端里包含了所需的功能,如:获取进程列表、KILL某进程、启动指定程序、获取文件列表、上传下载文件等等功能。
    由服务端发送消息激活客户端的某个功能。
    比如指令:61.21.xx.xxx getfilelist(C:\),客户端接收消息后就开始获取文件列表然后将文件列表发送至服务器。
      

  14.   

    加上兄弟你,我们就是悲剧3人组了...
    刚开始薪水低点不要紧,主要是项目好。这整个项目做下来,方方面面都学到了,感觉比做WEB开发实在。做3个月的时候,刚搞到网络编程,试着投简历,就有公司开现在2倍的薪水了,没跳,希望把整个项目做完。就当现在是闭关修炼吧。
    今天下午有时间,楼主你对这块有啥问题我们可以交流下。我没做拖桌面过来显示,其他的基本还是可以提供经验参考的。
      

  15.   

    有空可以加我QQ啊:497975927,不过老板不喜欢人家聊QQ
    MSN:[email protected]
      

  16.   

    从原理到代码都有
    网络上的资料,基本都是这个版本的。如果你有更好的资料就贴出来交流啊
    http://www.vjsdn.com/bbs/html/3/090926109221222.html
    http://www.vjsdn.com/bbs/bbstopicdetails.aspx?html=0&pid=109051213不过最好的是P2P网
    你网上一搜就知道
    但感觉P2P网有点深,从这两个贴开始入手吧
      

  17.   

    我在看这个,看了半天都没长进……
    http://www.vjsdn.com/bbs/html/3/090926109221226.html
      

  18.   

    一样的嘛!你去搜,基本都是这个版本的
    这个已经是最好入手的了...
    不过我觉得你也太夸张了吧,刚上来就干这个!好歹写写窗体,自己搞个简单的C/S,自己定个通信协议试试通信先。而且通信这块,就算你P2P打洞成功,要进行控制也是要有自己的协议呀!比如你要让被控端关机,你可以:在主控端添加一个按钮,点击后就向被控端发送一个"shutdown"字符。当被控端收到"shutdown"这个字符的时候,就调用系统API实现关机。从这方面开始比较好,没基础看再高深的东西也没用啊
      

  19.   

    这倒是...
    这些个决策者,自己不懂,还非要上项目!
    不过就算他定下了让你做这个,你自己最好也规划一下,从什么地方开始
    上来把p2p作为切入点,这怎么行!你先用两个星期,试试写简单的C/S好了,试着通信,对你以后也是很有帮助的
    最怕的就是你老板不知道难度,给你定1个月的期限...
    我boss虽然也喜欢上项目,好歹会给足我时间
      

  20.   

    我靠,兄弟你是在外包公司吧?宁愿做难的,也不要做赶的...
    没办法,慢慢研究P2P吧同情ing...
      

  21.   

    那边也有个发C#打洞的。。LZ可以去看下,和他讨论下