穿透路由器.控制内网机器的问题.在线等...

kingzhang 2008-03-21 03:35:11
A:192.168.0.17(局域网IP)
B:221.8.23.121(猫拨号IP,路由器IP)
C:外网.61.139.11.22(假设为固定)
当B的IP发生变化时.现在想让A发送给C一个信息.通知B的IP...请问应该怎么做..
...全文
245 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
marka953 2008-05-19
支持搂主,收藏
回复
xingyongjian 2008-05-14
赋予A,B新名字.
A,B分别使用新名字检索C中的数据,
A,B不停的检测C中的数据是否发生改变.
回复
yuyuhaso 2008-04-09
如果你是想访问内网的机器你可以试试:http://www.convnet.net
如果你是想获取IP那么你可以试试动态域名:http://www.vicp.net
回复
喝口水 2008-04-09
up
回复
dreamonce 2008-03-31
const
RAS_MaxDeviceType = 16;//设备类型名称长度
RAS_MaxEntryName = 256;//连接名称最大长度
RAS_MaxDeviceName = 128;//设备名称最大长度
RAS_MaxIpAddress = 15;//IP地址的最大长度
RASP_PppIp = $8021;//拨号连接的协议类型,该数值表示PPP连接

type
HRASCONN = DWORD;//拨号连接句柄的类型
RASCONN = record//活动的拨号连接的句柄和设置信息
dwSize: DWORD;//该结构所占内存的大小(Bytes),一般设置为SizeOf(RASCONN)
hrasconn: HRASCONN;//活动连接的句柄
szEntryName: array[0..RAS_MaxEntryName] of char;//活动连接的名称
szDeviceType: array[0..RAS_MaxDeviceType] of char;//活动连接的所用的设备类型
szDeviceName: array[0..RAS_MaxDeviceName] of char;//活动连接的所用的设备名称
end;

Type
TRASPPPIP = record//活动的拨号连接的动态IP地址信息
dwSize: DWORD;//该结构所占内存的大小(Bytes),一般设置为SizeOf(TRASPPPIP)
dwError : DWORD;//错误类型标识符
szIpAddress: array[ 0..RAS_MaxIpAddress ] of char;//活动的拨号连接的IP地址
end;

function IsDialedOn: Boolean;
const
MaxConnections = 10;//假设最多有10个活动的拨号连接
var
connections : array[0..MaxConnections - 1] of RASCONN;//拨号连接数组
longSize, intAvailabelConnections, dwResult: DWORD;
RASpppIP : TRASPPPIP;
begin
connections[0].dwSize := sizeof(RASCONN);
longSize := MaxConnections * connections[0].dwSize; //接收活动连接的缓冲区大小
intAvailabelConnections := 0; //获取所有活动的拨号连接的信息(连接句柄和设置信息)
dwResult := RasEnumConnections(connections[0], longSize, intAvailabelConnections);
if 0 <> dwResult then
Result := False
else
if intAvailabelConnections > 0 then
begin
RASpppIP.dwSize := SizeOf(RASpppIP);
dwResult := RASGetProjectionInfo(connections[0].hRasConn, RASP_PppIp, RasPPPIP, RASpppIP.dwSize);
if dwResult <> 0 then
Result := False
else begin
strIp := RASpppIP.szIPAddress;
Result := True;
end;
end
else
Result := False;
end;
回复
kugoo2338903 2008-03-29
那还不如在B的IP变的时候发个信息告知C,
比如就像在B每次登陆的时候,只在验证成功了,就把自身的IP发给C.
回复
jmxb123 2008-03-23
想控制内网的机器
1 如果你有公网IP或者可以在自己路由器上开端口映射,给B机装个反弹木马就可以
2 如果你在内网但由于各种条件不能在路由上开端口映射,可以在C机个装个中转程序(lcx或者idc),同时A机也要安装,实现内网控制内网
3 p2p 这玩意只是听说,没试过
回复
火龙岛主 2008-03-22
1.做一个A到B的映射,c只跟A相连,不用管B如何变化,c都会通过A转到B。
2.B要始终跟A相连,在A中监听B,当B发生变化时,发消息给C就好。或者在B变化后向A告知B发生变化了,然后发消息给C。
回复
lyguo 2008-03-22
可以把IP记录在一个网页中,每次变更时,把它刷新,
其它机器要想知道这个IP,就访问....
回复
lake_cx 2008-03-21
A在路由器上的NAT做一个端口映射,然后A监听这个端口(1000)
B监听一个端口(1001)
C监听一个端口(1002)
A发送一个连接B的1001端口,让B记录A的外网IP
B的IP变化后,连接A的外网IP,端口1000
A记录好B的IP,主动连接C的1002端口,发送数据包告知B的新IP
回复
kingzhang 2008-03-21
等等等等.....
回复
相关推荐
发帖
网络通信/分布式开发
创建于2007-08-02

1572

社区成员

Delphi 网络通信/分布式开发
申请成为版主
帖子事件
创建了帖子
2008-03-21 03:35
社区公告
暂无公告