一、IP地址与IP地址的动态分配# W U6 f# |3 M: U2 E
6 F1 N8 W6 y7 l/ y8 T+ i( B 1. IP地址基本概念
- \" y. y" D. K' U. @8 S' l
/ `% {- O: I2 y8 H% t5 W& Z Internet依靠TCP/IP协议,在全球范围内实现不同硬件结构、不同操作系统、不同网络系统的互联。在Internet上,每一个节点都依靠唯一的IP地址互相区分和相互联系。IP地址是一个32位二进制数的地址,由4个8位字段组成,每个字段之间用点号隔开,用于标识TCP/IP宿主机。 4 M6 M6 |; ], O; O- e8 Z
|: z Z7 F) w9 t2 f
每个IP地址都包含两部分:网络ID和主机ID。网络ID标识在同一个物理网络上的所有宿主机,主机ID标识该物理网络上的每一个宿主机,于是整个Internet上的每个计算机都依靠各自唯一的IP地址来标识。
: S6 Q3 o: v& m2 M. u
: ?% R0 Q$ G" a, \" j$ T IP地址构成了整个Internet的基础,它是如此重要,每一台联网的计算机无权自行设定IP地址,有一个统一的机构—IANA负责对申请的组织分配唯一的网络ID,而该组织可以对自己的网络中的每一个主机分配一个唯一的主机ID,正如一个单位无权决定自己在所属城市的街道名称和门牌号,但可以自主决定本单位内部的各个办公室编号一样。
) {7 X- d3 ?+ o& |% D* ^4 J# }& f* q2 {: Y+ ~, @& L6 f) @9 M7 B
2. 静态IP与动态IP + @9 m! h' V ~. ?& n# d) y
+ N0 z. W4 x9 \, e2 p& \ IP地址是一个32位二进制数的地址,理论上讲,有大约40亿(2的32次方)个可能的地址组合,这似乎是一个很大的地址空间。实际上,根据网络ID和主机ID的不同位数规则,可以将IP地址分为A(7位网络ID和24位主机ID)、B(14位网络ID和16位主机ID)、C(21位网络ID和8位主机ID)三类,由于历史原因和技术发展的差异,A类地址和B类地址几乎分配殆尽,目前能够供全球各国各组织分配的只有C类地址。所以说IP地址是一种非常重要的网络资源。 ! P# K# V, B& d W# i- }6 M7 C* w
7 i3 b6 _# {3 t2 |; R3 N% E
对于一个设立了因特网服务的组织机构,由于其主机对外开放了诸如WWW、FTP、E-mail等访问服务,通常要对外公布一个固定的IP地址,以方便用户访问。当然,数字IP不便记忆和识别,人们更习惯于通过域名来访问主机,而域名实际上仍然需要被域名服务器(DNS)翻译为IP地址。例如,你的主页地址是www.myhost.com,用户可以方便地记忆和使用,而域名服务器会将这个域名翻译为101.12.123.234,这才是你在网上的真正地址。
7 e+ g5 j3 j. {+ z
- Y# N4 Z/ N: F' Q1 g9 e& Q$ Y 而对于大多数拨号上网的用户,由于其上网时间和空间的离散性,为每个用户分配一个固定的IP地址(静态IP)是非常不可取的,这将造成IP地址资源的极大浪费。因此这些用户通常会在每次拨通ISP的主机后,自动获得一个动态的IP地址,该地址当然不是任意的,而是该ISP申请的网络ID和主机ID的合法区间中的某个地址。拨号用户任意两次连接时的IP地址很可能不同,但是在每次连接时间内IP地址不变。 / c" a! g; }. y0 R7 D9 s, x
/ J A# {5 F! [ 二、点对点TCP/IP连接 ' b+ O% ?, K/ e6 Y
+ F$ Z% s7 }. X/ M" Q% p
1. 点对点TCP/IP连接与IP地址
; q; V4 J- H5 N& s- y
% y9 W) a7 n. s' {! ? 一个运行TCP/IP协议接入因特网的计算机必须拥有一个唯一的IP地址,才能与网上的其他计算机进行网络通讯。实际上,在任何时刻Internet连接都能由4个要素来描述:源IP 地址、源地址端口号、目的IP 地址和目的地址端口号。
4 g5 l0 }" v. R0 I* X$ R$ l) f' S2 ]7 ?" [
2. 点对点TCP/IP连接的间接实现
/ Z. `0 \' P, [7 G& `# G+ K- i a& D b" Y
由于大多数上网用户每次上网都自动获得一个动态的IP地址,这就使两台计算机之间建立直接、方便的点对点TCP/IP连接存在一定障碍。解决的办法是通过间接的方式进行连接,即通信双方同时登录到某个提供服务的主机上,由该主机建立双方的间接连接,网络电话、网络寻呼、网络游戏大都使用这一方法。随着技术的成熟和发展,这种网络连接服务可以提供诸如网络会议、多方通话、多方游戏等服务,已经突破了双机连接的局限。
& }, e# |8 E2 J' q7 V8 n0 L* P! l
u$ v; P9 K$ E: z( ]+ Y 3. 点对点TCP/IP连接的直接实现 , g# U5 U ~* ~; y& F: @! f
3 n& u$ `6 l2 s& N: [
支持直接TCP/IP连接的软件很多,例如微软的网络电话软件NetMeeting,唯一的前提就是双方必须在联网时相互获得对方的动态IP地址,或者更简单地,只要知道被呼叫方的IP地址即可,这类似于知道被叫方的电话号码即可建立电话联系。于是关键问题就是捕捉和交换各自的动态IP地址,或者捕捉和发布自己的动态IP地址以等待呼叫进而建立连接。 / U- m5 _& `0 v) I( ~: \, g/ h
" y3 k0 S8 S' @: z# f8 D
三、动态IP地址的捕捉与发布 ) D+ F+ P3 e& A! y$ D6 z6 |8 b# x
3 l5 m* _8 K, w0 m0 Q 1. 动态IP地址的捕捉
' r% s: g* v" ]% _ f
6 `5 s& C; u ^( T; B! T 有许多方法和工具来实现动态IP地址的捕捉,Windows 95/98提供了一个IP 配置 (WINIPCFG) 实用程序,使用方法是单击“开始-运行”,在“打开”框中键入:winipcfg,出现程序窗口后,可以单击“详细信息”进行查看(图1)。IP配置实用程序允许用户或管理员查看当前IP地址和其他与网络配置有关的有用信息,有关配置信息包括主机名、DNS服务器、IP地址、网络掩码等。可以重置一个或多个IP地址。“释放”或“更新”按钮分别释放或更新一个IP地址。如果希望释放或更新所有IP 地址,请单击“全部释放”或“全部更新”。其他工具也可以实现本机IP地址的查询。 9 I8 ^6 l' }1 {" ]% W9 Z
# u9 t0 S2 u6 S4 E. [- Q
2.动态IP地址的发布 2 `3 K" B) ?9 v) }- b
1 y) l+ E4 n: A1 C) r
可以将得到的动态IP地址更新到自己的主页上,这样所有访问者都可以通过该地址呼叫主页的所有者,建立点对点的TCP/IP连接。
+ G; i- u( A) ]+ r8 z7 j0 r3 H7 s; q- t$ K7 r- j3 w0 h9 l4 t0 M
四、动态IP地址捕捉发布工具—DynamIP " e1 I' h/ w, R5 F
' g, D6 ]1 Q/ x
知道了原理,就可以借助工具来完成这一过程。DynamIP就是一个很好的动态捕捉与发布工具。DynamIP的主要功能有:
3 }& [* F' {$ M& [
Y" M0 n( T! g' r9 ^. I6 |/ r5 p 1. DUN/RAS Dialer with Event Driven Program Launcher:具有事件驱动功能的拨号工具,可根据用户要求或者自动定时进行拨号,并且可以在诸如“新连接建立”或“连接终止”等事件的驱动下运行/关闭其他应用程序,当网络流量低于设定值时可以自动终止联结,这对于无人值守下载大软件时特别有用。 - B1 Q9 q9 Z5 b% Z" l
) Q- o* Z9 V( U. w+ d8 K; D* E
2. Uploader(Dynamic IP address poster):文件上载工具(动态IP地址发布)。DynamIP可以将你的动态IP地址发布在指定的Web页面上,并自动地将该页面上载到服务器。当然也可以用来更新和上载任意文件,例如用来定期上载图形文件,而该文件是利用数码相机自动定期拍摄的,于是该主页就成了一个现场直播的页面。
! d$ [- @! c' X$ s7 x& o$ z+ Y+ y/ ]% P5 K
3. DIPS Client:DIPS客户端软件,DIPS(Dynamic IP Server)是动态IP服务器的简称,在申请了一个免费账户后,动态IP服务器可以在主页中显示一个指向你的动态IP的URL,形式为:http://postmodem.com/dips/<你的账户名>。
5 [# o/ _9 v8 h6 @& V2 p6 Q/ g3 A! K E9 e
这一功能允许网上用户通过该URL访问你的本地主页,这是指在本地主机安装的Web服务器(例如个人Web服务器)。当你要调试主页或者无法找到一个提供满意的免费主页服务器,或者你认为上载主页太浪费时间时,这项功能就显得尤为重要,目前的虚拟域名服务与此不同的是,虚拟域名服务要求你的主页必须安放在具有固定域名的主页服务器上,然后才能提供转移访问,而动态IP服务器则可以随时跟踪你的动态IP,并将访问者转移到你的本地Web服务器上。只要你联网并且你的本地Web服务器正在运行,DynamIP可以自动地确定你的DIPS信息是否需要更新到动态IP服务器。配合DIPS,用户可以在不上载任何文件的情况下进行Web聊天。
+ n5 D) F$ X: {( a/ ]; F$ u' ?' z/ Q. D& i
4. POP mail checker:电子信箱检查,可最多检查5个不同的POP3账户,并在新邮件到来后以可视或声音信号进行提示,自动运行E-mail客户端软件取信。
8 P. k) Z4 p) G% k5 a0 `' D: H' G H3 Q
5. IP chat:点对点IP聊天,类似IRC,但是不需要任何IRC服务器,DynamIP可以在用户指定IP地址区间内扫描,你可以向所有聊天成员或者特定IP地址广播消息,你可以向其他聊天成员打招呼以引起对方注意并建立一个私人聊天。DynamIP支持微软网络电话软件MS NetMeeting。
]0 O/ d0 E& F; j- I5 O, g' ]
( c$ i7 ~6 K% G6 S" e& i& }' h' u 6. WEBchat:Web聊天。你的主页访问者可以利用浏览器直接与你对话,即使对方没有安装DynamIP,前提是你在主页中安装了如图2的页面,该页面将被DynamIP动态更新,浏览器必须支持forms,Netscape和Internet Explorer,毫无疑问都支持forms。访问者可以在forms中填写语句,然后按submit按钮,该语句被发送到你的计算机(利用DynamIP捕获的动态IP)。可以与功能3配合实现本地Web聊天,则不必上载主页到任何服务器。 % E/ X P! f: @# k1 y" _3 \% {
5 F7 N' H6 L8 R' O 7. HTTPscan:HTTP扫描。DynamIP可以在用户指定IP地址区间内扫描,并以超文本文件格式生成一个包含所有被搜索到的HTTP服务器的清单。用途之一是当你与某人进行点对点IP聊天时,你可以立即访问对方的主页。 ; }8 I2 C; p. i* w+ @! v/ ~
3 \5 n- j2 t6 I+ a5 [+ E# T! g 8. PC Clock Synchronizer:时钟同步。DynamIP可以从NTP服务器获得精确的日期和时间以校准你的机器时钟,另外也可以用来部分地解决“千年虫”问题。 ( x9 `$ S+ d. P; T
& E) Z v8 w5 k- H$ N
五、DynamIP的安装、设置
2 c t3 I- f- O0 D$ p. H: |% \- _4 D8 }$ j6 i' [7 Y/ H
1. DynamIP的安装 - m4 t: G9 ^8 E" e
( s- Z/ ], ]4 M, P
DynamIP的安装只有一个条件,那就是你的Windows系统中必须有VB6.0的运行库—MSVBVM60.DLL。该文件没有包含在DynamIP的软件包中,用户必须从微软公司VB官方站点下载,文件名是Vbrun60new.exe,它是自动安装文件,文件长度为1MB。
- m% U, `' r+ o" \) g
9 ~4 B9 L% f6 H' K. @ 2. DynamIP的设置
# {- r; U0 C! O/ v7 ^5 \% ]
7 M. s- W! ?( F# ?! w* ? DynamIP的基本原理是很简单的,DynamIP将利用模板文件(Template)中的各项形式参数来更新一个本地文件,该文件包含了你的当前动态IP地址,然后DynamIP自动上载该文件到你的个人主页服务器,于是其他访问你的主页的用户可以利用该页面上的动态IP地址信息与你建立连接,实现各种网络应用;或者DynamIPS更新你的DIPS信息到动态IP服务器,所有访问该服务器的用户可以被转移到你的本地Web服务器上。所以在设置和准备DynamIP的时候,一切工作都是围绕这个模板文件和你的动态IP地址进行的。
2 ^0 A! {) u/ N" X" ?1 j4 M2 j! [% X! Z7 C; j( y. I5 B
DynamIP的主要功能是Uploader文件上载工具(动态IP地址发布),本文将以此为例介绍DynamIP的设置,其他各项功能的设置类似。运行DynamIP,选择setup-uploader,则进入设置窗口(图3),各项参数如下: / }) J9 E- `$ O, _' o
1 i' d( S R7 F Active:打开/关闭此项服务;
6 X+ f2 ^5 l9 J! d
- O0 [+ }# R& Y9 Q, D2 \ Remote Host:你的主页所在的FTP主机地址,注意不要填写主机上的路径;
) W: f; R/ H _
% t- c5 _7 f; ]4 G8 ]- q! n Login:你的FTP账户名; % p8 x. x1 V$ G3 E0 j
9 f2 a2 f3 w$ S8 d3 t- e5 z! s: a6 |
Password:你的FTP账户口令;这三项参数使得DynamIP可以登录到你的FTP主机,自动上载更新的文件,通常填写的是存放主页的主机地址。 & f7 j' y' _/ H1 B' l3 j' z
# q3 |! I6 f. k/ q8 L: q1 K1 } Template Online:联机模板文件,该文件将用来生成包含你的IP地址的动态本地文件(LocalFile),模板文件不会被更新。本地文件和模板文件名字不能相同,否则DynamIP不会正常工作。如果此项填写“”,则DynamIP将上载未更新的本地文件,可以用来上载数码相机拍摄的图片进行动态直播,参看“refresh every”。
) b7 X* ]% |! a6 I1 s' x- p* G1 x4 i
- U0 m# n6 _6 ^1 C" m! Z Template OFFline:脱机模板文件,通常与联机模板相同,如果你想在脱机之前上载一个不同的页面,你可以选择一个不同的模板文件,此项可以填写“”,功能同上。
$ y: @# `+ @7 b. P" n. B4 f4 ~$ y4 r, o+ g$ `
Local File:本地动态文件的路径和文件名,以联机或者脱机模板文件为样式更新的文件,包含用户当前动态IP地址等信息。 % }$ i- P' E; C
7 M" E% _5 l/ ]! y4 q
Remote File:存放在FTP服务器上的远程动态文件的路径和文件名,本地动态文件将上载和覆盖该文件,不要填写服务器的域名或者IP地址。
% s) S2 U9 D1 q0 _. f
' _& ~; B7 f1 V$ Y- G. J7 \# s- W( q# l: P IP:联机模板文件中的IP地址形式参数,该参数将在联机时被用户当前的动态IP地址所替换,DynamIP默认的形式参数是NOT.ON.LINE.NOW,通常没有必要改动,若改动,则此项内容必须与模板文件中的形式参数名完全相同。模板文件中还包含了其他形式参数,如IP、DateTime、WEBchat、HTTP Server、FTP Server,这些形式参数都将在联机时被DynamIP自动替换,因此最好不要随便改动,即使改动,也要注意每个形式参数的名称不得相同 7 T- J+ Y9 M/ P# }8 k) l
, c/ {3 J% a1 e# B8 _# ]
,并且各项内容必须与模板文件中的形式参数名完全相同。 ! w5 z7 u7 Z! d. |
6 z4 N& }/ x4 @6 Q6 F" w- d; D
post last IP(OFFline):张贴上次IP地址,脱机模板文件中代表上次IP地址的形式参数,默认值为( is the default value)。此项内容必须与模板文件中的形式参数名完全相同。 Y$ l8 P4 A4 N- V3 f2 x6 E
+ C" l0 g+ K' g: O
DateTime:联机模板文件中的日期时间形式参数。 ' M* w1 y! D5 B* Y
( z6 C, d" h; u/ x! X3 u t8 O
HTTP Server/Port:联机模板文件中的HTTP服务器/端口形式参数,这里的HTTP服务器系建立在本地主机上的HTTP服务器(例如个人Web服务器),DynamIP用你的当前动态IP地址替换该参数,以便将访问者转移到你的本地Web服务器。默认值为:“default value is HTTP Server NOT available. ”默认端口值为:80。 " C2 V* k5 Z' T N" Y1 a# M3 `1 \
- N% d8 x; I& x1 L) T# A e FTP Server/Port:联机模板文件中的FTP服务器/端口形式参数,含义同上,只是服务器为本地FTP服务器。默认值为:“FTP Server NOT available”,默认端口值为:21。
( {+ o7 z- v* I9 ]4 c9 N$ U! b) r& m0 Z6 I. I3 D1 G& b# i
FTP UserID:联机模板文件中的FTP用户ID形式参数,默认值为:“anonymous”,可以改变为其他账户名。
& R! V, h! e, V% e
" S6 b. w: q9 v" c3 ^2 N 六、DynamIP应用实例
6 s$ W& x" i: |8 I! |7 \ C B! P3 V2 d x& k1 H, L
假如网上任意两个用户(实际上是计算机)能够相互知道对方的IP地址,则双方就能利用TCP/IP建立直接的点对点网上连接,进行信息沟通。更进一步,主叫方只要获得了被叫方的IP地址,就可以发出呼叫、建立连接、实现应用,如利用网络电话直接通话或者发送文件。DynamIP正是抓住了建立点对点IP连接的关键环节,捕捉并发布用户的当前动态IP地址,以便接收其他用户的呼叫。以下为DynamIP应用举例。
, W8 ?5 P9 \3 B# D
9 V8 J/ V) R6 J: Y. f, H# m+ V 1. 点对点网络电话
0 {7 ^+ u1 Y; i; l( ^0 c3 e! [
$ W& I: `! X: X0 [7 d 在主页中添加下面一行语句:
! I5 Y# E5 u& c
+ O3 t% o. V: h+ h, i9 p 我正在网上,请给我打电话
1 \2 d% p% `8 R# z0 w; C3 K8 \2 J8 ^5 \, i
若访问者通过IE浏览器访问该页面,点击该超链接将会运行网络电话软件NetMeeting呼叫IP地址为111.222.123.123的计算机,如果对方的NetMeeting处于等待状态,则可以接收到呼叫,并进行通话。
0 s. w) f+ P' l! e7 V/ c0 I! N+ m; ^& d% c6 s( v
微软公司的浏览器支持callto协议,可以用NetMeeting呼叫该超链接指定的IP地址。但是Netscape的浏览器不支持callto,解决的办法是改为一个指向快速拨号文件的超链接,这样无论是在IE还是在Netscape中,打开该拨号文件都会运行网络电话软件NetMeeting。 " D, z4 \" ]6 Q+ U
+ \2 T, H% O8 E, z2 ?
语句如下: % l. U, C/ w3 {( B
5 q! i# [% L* G% }. Q; u 我正在网上,请给我打电话
3 {/ ^1 f5 n% k3 | X3 l
* J1 U# u% c- F( o% a6 x; Y8 _5 X' M 这里ls.cnf是一个NetMeeting的快速拨号文件,记录了被叫方的IP地址,内容如下: 8 V( V" f( N& x5 v- o; N! S
* N: E6 |/ L) t- y3 C# b" P# g8 r [ConferenceShortcut]
" s) M$ j. i! J. K R
( i0 o0 g% j3 ?$ g1 u: t W* w ConfName=111.222.123.123 0 _# b, l# J; ]) b) B
' ~. ?* {% { y1 z Address=111.222.123.123 ! D" \% P2 s- Z" c4 W5 d2 `
& [. D" W! K2 d7 p CallFlags=65543 . U6 q% ~; ?0 `
) Q9 D- q; N- e) j# ]/ M
Transport=1 6 n$ B" U4 ?& @ E0 o- \9 B& e
1 K1 Q" q; h3 Z' ?" ^0 o1 f4 R
类似的语句还有:click here to call me,可以激活Vocaltech Iphone。 ) m. n! `' x, ]
& u+ g# Z( I+ [ 以上工作可以直接利用DynamIP的联机模板文件(图2)来实现,DynamIP将利用模板文件更新本地动态文件,上载并覆盖远程动态文件,主页的访问者看到的是包含当前IP地址的超链接,点击超链接将会激活网络电话软件,建立点对点网络电话连接服务。网络电话NetMeeting支持利用服务器实现的间接连接和呼叫对方IP地址的直接点对点连接,这里使用的是后者。如果你上载了脱机文件,访问者将得知你不在网上。
( i+ ]% t3 V% Q3 C, p3 q7 \/ S) }4 H* ~( |! M0 g7 y
2. IP chat:点对点IP聊天(图4),类似IRC,但是不需要任何IRC服务器,因为双方已经知道IP地址。注意要在Setup--pchat中打开Active。工具栏中有用于呼叫、扫描、睡眠/唤醒的各项功能按钮。
% u$ _. H* P6 `/ z6 ? Q# O( L* V" i/ W0 E. M
3. WEBchat:Web聊天,你的主页访问者可以利用浏览器直接与你对话(图5),即使对方没有安装DynamIP,前提是你在主页中安装了如图2的页面,该页面将被DynamIP动态更新。
! I: g7 }4 P) ?. W0 X# d% \# r1 ~+ C# o/ q# }7 u F
用户可以决定上载联机文件或者脱机文件,以便及时通知访问者自己是否联网。 / M8 S% }1 N0 B
. Q. l0 z( N, p) Z; w2 J+ A' F1 N3 \( n9 c 4. 动态IP的个人Web服务器:若已经在本地主机安装了个人Web服务器,可以利用DIPS服务,将访问者转移到你的本地主机。这需要申请一个免费账户。网址是: 5 i- C+ R1 S0 D* w
3 f2 G# }# `/ A; ?0 k http://postmodem.com/dips-admin/。
4 _( }, L3 b4 Q5 Q) K. V5 w5 {
+ E# G- E% u) C p" C* F 七、总结与提示
: e4 a9 ?9 T3 A6 Y. b" i/ t; r' K" z7 a% ]. Z! l6 k
DynamIP可以捕获和发布用户的当前动态IP地址,从而使点对点的IP连接成为可能,这些是网络传呼软件无法做到的。另外,对于每一种基本功能,如果能够巧妙地结合其他方法,往往能实现更复杂的应用。例如,你是否想过在运行TCP/IP的局域网上使用DynamIP的强大功能呢?
- x- S4 H* N& M. i# X. \
* t' @' {: Q, c/ f7 J- V 同时应该注意到,DynamIP更像是为高级网络用户准备的发烧级工具。在网上公布自己的动态IP地址固然有利于沟通,但同时也带来了相当大的风险,因为黑客用以搜索和攻击目标的坐标就是IP地址,许多流行黑客工具甚至只需要一个输入参数—你的IP地址。因此,最好不要在存放重要资料的计算机上进行这些高级网络应用试验。! a1 L% W5 B0 G/ K* r% V+ w8 j, j
|