关于动态ip的问题(100分)

  • 主题发起人 主题发起人 xiehuadong
  • 开始时间 开始时间
X

xiehuadong

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:
我有一台主机(用adsl(成都)上网,(路由模式或拨号都可)),没有固定ip
且生成的动态ip据说是内网ip(不解??).
其它n台机器,由电话线上网或专线上网
我在主机上写了一个接收数据的程序,
客户端有传送数据的程序(用dephi的socket实现),在局域网内指定ip地址可以实现.
请问有什么办法能让其它机器访问我的主机,并实现我在局域网内的数据传输功能;
(不要让我向电信给money哈,我已经很穷了)


 
1、用ipconfig.exe查你现在的动态IP地址。
2、告诉客户端。
3、客户端用此IP与你的Server通讯。
4、IP变化后重复第一步。
只能这样了,而且用UDP可能还不行,穿透不了NAT。
 
用域名解析,变的是IP,但是不变的是域名.
这问题问的太多了。
 
我现在的办法是上MSN :)
 
to all:
上述办法不太行因为我是有adsl上网,ipconfig.exe查询出来的动态地址在客户端
不能ping通,就谈不上用ip来通讯了,我查了很多这方面的问题但都没有得到好的办法,大
家能不能再想想
 
to app2001:
上msn可以知道动态ip?能否说说?要用其他什么控件吗?
 
再说一下,我得到的动态ip是公网的出口而不是我自己机器的
本人对网络知识了解不多希望那位老大解答一下
 
你的adsl model不是具有路由功能吗?把adsl model设成路由器呀,然后更该adsl model的参数,指定使用连上的电脑使用ip,然后在你的服务器上指设定你在adsl model里设定的ip
,我想这样可能可以的吧
 
哦,你误会我的意思了,MSN可以与对方在网上传送文件,而不会出现象QQ那样因对方在局域网内上网而传送不出去的问题
 
Msn 是用邮件方式转东西的
 
to :jackeysen,
详细一点好吗,我对配置不是太清楚,谢谢了
 
我的adsl配置如下
WAN

IP Address Subnet Mask MAC Address
220.166.218.27 255.255.255.0 00:C0:A8:A2:E7:D8
LAN

IP Address Subnet Mask MAC Address
10.0.0.2 255.0.0.0 00:C0:A8:A2:E7:D7

Total Number of Lan Interfaces: 1


连接到DHCP服务器的以太网设备数量: 1

IP Address MAC Address
1 10.0.0.8 00:40:95:78:5D:5E




 
你的这些地址是在你的网卡上看到的吗?????你要改的是你的adsl model 里面的参数,不是你网卡的参数,你要用telnet 连到你的 adsl model,看里面的参数,一model般出厂的密码是1234,
 
我的参数就是modem配置页面的
 
--------------------------------------------------------------------------------

PVC设置


激活? VPI VCI 静态IP地址 子网掩码 网关
No Yes

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

MAC欺骗
Mac欺骗 Disable Enable
Mac地址

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

ATM
服务类型 UBR CBR
带宽 kbps

--------------------------------------------------------------------------------

封装 PPPoA VC-Mux PPPoA LLC 1483 Bridged IP LLC 1483 Routed IP LLC 1483 Bridged IP VC-Mux 1483 Routed IP VC-Mux Classical IP over ATM PPPoE VC-Mux PPPoE LLC

--------------------------------------------------------------------------------

桥接 Disabled Enabled

--------------------------------------------------------------------------------

IGMP Disabled Enabled

--------------------------------------------------------------------------------

PPP
服务名称
用户名
密码
断开超时 seconds (Max:32767)
MRU
MTU
MSS
认证 CHAP PAP Auto
自动重连 高级PPP配置

--------------------------------------------------------------------------------

DHCP
激活DHCP client
主机名



--------------------------------------------------------------------------------

虚拟通路: 0 1 2 3 4 5 6 7


 
如果你知道其他n台机器的IP,何不反过来?或者叫他们申请免费动态域名。最好的办法是换ADSL,要直接外连的,我坚决不用小区的宽带。凡是上网IP不是公网的我都不用。曾经用过,害的我要找跳板。
 
你先到网上查一下你的model型号,看一下你的model的功能能不能扩展,我的方法理论上是应该可以的,你的目的是要你的机子有个不变的ip吧,‘DHCP 激活DHCP client‘ 这项就是自动分配了ip
 
呵,如果拨号上,且用代理服务或者用网关,那么用这段代码取ADSL ip,外网ip地址,
再随便申请一个免费域名,比如xxx.126.com,做个ttimer ,定时取ip定时更新域名的指向,
或者定时取出ip发到一个email邮箱里面.,连接时候再到邮箱取出ip,再socket 。。。,和内网一样做..
取ADSL IP的代码.
type
TaPInAddr=array[0..10] of PInAddr;
PaPInAddr=^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
Buffer: array[0..63] of Char;
I: Integer;
GInitData: TWSAData;
IP: string;
begin
try
WSAStartup($101, GInitData);
IP:='0.0.0.0';
GetHostName(Buffer, SizeOf(Buffer));
phe:=GetHostByName(buffer);
pPtr:=PaPInAddr(phe^.h_addr_list);
I:=0;
while pPtr^<>nil do
begin
IP:=inet_ntoa(pptr^^);
Inc(I);
end;
finally
WSACleanup;
end;
end;

如果路由上网,那么稍有点麻烦,你要用端口映射到某一台内网ip上,其它步骤和上面一样,再socket ,端口映射用socket建立连接不知道是否可行,我没有测试,所以不敢保证正确否。
 
Jhdandcl:
这段程序只能得到一个IP啊,拨上ADSL后我本机有2个IP:192.168.0.1,218.17.25.168,
试了这段代码,只得到192.168.0.1。
 
我用的是天邑的HASB-100
 
后退
顶部