怎样取得对方电脑的公网IP地址(100分)

  • 主题发起人 主题发起人 oupj
  • 开始时间 开始时间
楼主太。。。。了,所有的方法都说了,你租个域名,然后写个类似花生壳的软件也能ok,如果有域名和空间,使用我的代码一点问题都没有。
 
-_-!..............

首先,你的服务器,即使没有固定IP,也应该有个固定域名吧,否则其他人怎么访问,难道每次访问前都要先给网管打电话问IP?

有了固定IP或者域名就好办了
你那个exe文件只放一个
IdTCPClient控件:
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Host:='xxx.xxx.xxx.xxx';//服务器的IP/域名;
IdTCPClient1.Port:=1053;//端口
IdTCPClient1.Connect;//建立连接
end;
就完事了

而server端只放个IdTCPServer控件,设置
DefaultPort:=1053;

procedure TForm1.TCPServerConnect(AThread: TIdPeerThread);
begin
showmessage('对方机器IP:'+Athread.Connection.Socket.Binding.PeerIP);
end;
 
我还有一个想法:
自己申请一个网页空间和域名,客户端放一个EXE文件访问这个网页空间,在网页空间上用代码实现取连接这个空间的IP,手提等垃圾电脑又有一程序是取访问这空间的电脑的IP .
这代码怎样实现
 
楼主 你看明白我写的了吗??????????/。看明白了,应该会做了,现在应该实现了。我的代码都贴好了对于你这个想法
我还有一个想法:
自己申请一个网页空间和域名,客户端放一个EXE文件访问这个网页空间,在网页空间上用代码实现取连接这个空间的IP,手提等垃圾电脑又有一程序是取访问这空间的电脑的IP .
这代码怎样实现

你在有想法 就是 申请一个域名 然后作个类似花生壳的域名解析软件也可以
 
To: 980
1、感谢你的回答,你的代码我看了,因为还没时间去试,但你的代码对我也有一定的启发。
手提等电脑要取得访问空间的电脑的IP也是可行的,方法是空间使用数据库形式记录访问空间的电脑IP,如果加上特征码的话就知道IP的具体人(厂),但我对Asp等不熟悉。
2、但我只会想,因为个人程序编写能力有限(我只是入门不久的菜鸟:)),不会用代码实现。
请有能力实现这功能代码的朋友一起努力,把这功能做好,然后大家做程序(有两个以上点,但又没有固定IP,程序间要实现数据交流的程序)时就方便很多,而且可以省下大量的成本。
 
To: app2001
app2001 您好,想不到你也留意到我这贴了,以前你也帮过我解决了不少的问题;找资料时在其它贴上也看到过你的大名,请问你这个问题有什么看法,如果有具体的解决方案更好 :)
 
我给你贴的代码 就是我使用的,就是www.163.com 我更改了一下,怕你我我的ip 更改成你的ip .你说加特征值,这个也好办,但是不管怎么 你的对asp 了解点,否则实现有点难度.
这个是我 看别人的,我测试过 也好用
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls, ComCtrls, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
state: TStatusBar;
IdHTTP1: TIdHTTP;
Memo1: TMemo;
Label2: TLabel;
Edit2: TEdit;
Button2: TButton;
Label3: TLabel;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
name:String;
password:string;

GetURL :String;
PostURL :String;
GetHtml :String;
sParams :String;
aParams :TStrings;
aStream :TStringStream;
begin

IdHTTP1 := TIdHTTP.Create(nil);
aParams := TStringList.Create;
aStream := TStringStream.Create('');
memo1.Lines.Clear ;
name:=edit1.Text ;
password:=edit2.Text ;
GetURL := 'http://localhost/ssw/ssiptxt.asp'; {登录页面网址}
PostURL := 'http://localhost/ssw/ssiptxt.asp?ip='+password; {提交网址}
sParams := 'name='+name; {提交参数}
try
aParams.Clear;
aParams.Add(sParams);
GetHtml := IdHTTP1.Get(GetURL); {取登录页面}
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP1.Post(PostURL, aParams, aStream); {提交}
memo1.lines.Add(aStream.DataString);
memo1.SelectAll ;
finally
IdHTTP1.Free;
aParams.Free;
aStream.Free;
end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close();
end;

end.
 
嘿,在这方面我也是瞎摸,没啥好经验,不过我看你说在服务器上存放了一个EXE文件,我个人认为这其实和木马的原理也差不多的,这让我想起了一个也是用DELPHI做的,也较出名的灰鸽子的早期版本源码.你也许可以从网上下回来了解一下的.下面是它的一些说明:
灰鸽子Vip1.2源代码
灰鸽子工作室声明:

自从灰鸽子成为国内最著名的远程控制软件以来,同类软件黑X恶意对外造谣说灰鸽子早期版本用的是黑X的核心源码,要知道什么叫核心代码,其实正真的核心是人家编程工具、是VCL,本版本通讯用的是Delphi7 INDY 组件,特为此公开灰鸽子早期版本VIP1.2源码,编写软件就像一个组装工人,软件里有不少来自互连网Free的源码,也经过了自己的加工和修改,希望我们公开源码,让你也能写出更好的远程控制软件.软件因为是2003年的早期版本过度版本,为了感谢灰鸽子爱好者对灰鸽子工作室的一贯支持,现在将灰鸽子VIP1.2的源码公开(包括用到的所有控件),供编程好爱者学习研究!由本源码引发的任何纠纷本人概不负责!

我当时下的时候的网址
URL http://www.hacker001.com/Soft/ShowSoftDown.asp?UrlID=1&SoftID=1662
 
asp空间上放两个页面set.asp,get.asp
提供服务机器定时调用
v:=CreateOleObject("msxml.xmlhttp");
v.open("set.asp",get);
即可
查寻的机器
v:=CreateOleObject("msxml.xmlhttp");
v.open("get.asp",get);
其他的都是asp了
set.asp
<%
application(&quot;dddd&quot;)=Request.Servervariables(&quot;remote_addr&quot;)
%>
get.asp
<%
response.write application(&quot;dddd&quot;)
%>
原理就是这样,具体的应用还是有很多地方需要注意.
 
呵呵 学习~~~ 呵呵
 
前段时间外出了,现在才看到大家的信息

To:铁盒子:
因为我对ASP不熟悉,我的QQ:47098226,能不能发一份完整的代码给我,谢谢
 
这些就可以实现了.我并没有实际的应用
 
===》》》请大家给出相应代码,软件公司怎样取得我公司服务器上的公网IP。
他是和花生壳客端一样的道理,你运行了他的客户端,他的客户端连接他的服务器,
那么你的外网IP他就知道,花生壳也是这样取客户端动态IP的.

实现的话,如果你电脑是暴露在Internet上,就可以把你的电脑充当服务器,否则如果
你的电脑是内网,你就得在路由器上做端口映射,转发到你的电脑上才能做服务器。
另外你的电脑用个动态域名才行,用花生壳最方便,免费域名就行。
客户端的IP填你的花生壳申请的免费域名就行,那么只要你的服务器花生壳运行成功,
客户在任何能连接上Internet的机上都能访问你的服务器,那么客户端连接过来的IP就是
他的外网IP了。
 
感谢大家的参与,终于找到方法了
 
多人接受答案了。
 
后退
顶部