网络常识问答 橘佑京 2001年 1期 #1 1.什么是IP地址?    我们上网的每台机器都至少会有一个IP地址,以区别与Internet网上的其它机器,格式为: xxx.xxx.xxx.xxx(其中x代表0-9的数字,xxx的大小在0到255之间)比如:一般机器的本地IP地址是127.0.0.1。其实IP地址相当于你在Internet上的身份证号码,是用于区别他人的,所以在Internet里是没有两个IP地址是相同的。   #1 2.拨号用户的IP地址是每次都变化的    对于拨号上网的用户,你每次拨号上网被分配的IP地址是变化的。比如:这次你的IP地址是202.102.243.48,下次可能是202.102.243.170或其他,但在整个Internet里仍然是唯一的,并且在你没有挂断之前一直是不变的。不少拨号上网的网友对IP地址每次都变化表示困惑,我是这样理解的:假如你的ISP(网络服务提供商)有1000个拨号用户,而它只拥有500个IP,事实上经你的ISP统计,一般同时上网的用户不超过400人,所以给它的拨号用户随机从500个IP中分配不仅是可行的,而且是划算的。当然你若肯向你的ISP额外付费的话,完全可以获得一个拨号的固定IP,但这对大多数拨号用户来说是不必要的开支。   #1 3.我上网后怎么才能知道我的IP地址?    对于Windows 95:运行winipcfg.exe    对于Windows 98:运行ipconfig.exe   #1 4.Port端口有什么用处?    Port端口是用来标识不同Intenet服务的。打个比方:某公司的总机电话是88888888,电脑部的分机电话是001,网络部的分机电话是002,依次类推。那么我要找该公司电脑部的人,首先要知道公司总机电话88888888,而且还要知道001才能接通,同样要找网络部的话就要知道002,这里的8888888就相当于IP地址,001和002就相当于端口,是用来区分同一公司的不同服务部门的,也就是说我知道了某台服务器的IP地址,并向它提供端口号,它才能把你需要的数据传送给你,当然那个端口必须是开放的,就好比公司的电脑部必须是存在的一样。一般我们的浏览器默认是向IP地址为80的端口发送请求的。常见的端口号及相应的服务如下:    21 FTP-文件传送(用CuteFtp等Ftp软件维护网站用的就是该协议)    23 TELNET - 远程登录(管理员和黑客远程控制系统的最基本手段)    25 SMTP - 邮件发送(Outlook Express或FoxMail等邮件程序发E-mail用)    53 DNS - 域名解析(实现域名和IP地址之间的转换)    80 HTTP - Web服务(最常用的为Internet Explorer等浏览器提供网页服务)    110 POP3 - 邮件接收(Outlook Express或FoxMail等邮件程序收E-mail用)    ……    注:端口范围为0-65535,0-1024为系统使用,剩下的用户自己定义,所以聊天软件和木马等使用的端口大多都大于1024。   #1 5.我知道对方的IP地址,如何判断对方是否在网上?    用Ping.exe程序,方法如下:    Ping 对方的IP地址(回车)    若出现信息“Reply from ...” 说明对方在网上!    若出现信息“Request timeout ...” 说明对方不在网上!    注:文件Ping.exe在Windows目录里。   #1 6.如何才能隐藏上网的IP地址?    对于这个问题,我个人认为:基本上是不可能的。为什么说是基本上呢?是因为有的时候是可以的、是相对的。具体实现IP隐藏的方法主要有两种:    (1)使用代理服务器    从上面可以知道使用代理服务器就能实现对其他服务器的IP地址隐藏,但是你对代理服务器是无法隐藏的。    (2)发送数据时改掉IP数据包里的你的IP地址    说到底,在Internet网上传输的所有数据(包含有你的IP地址),都是以IP数据包的形式传送的,所以可以在发送IP数据包之前先把自己的IP地址改掉,然后再发送,自然对方就无法获得你的IP地址了,相当于实现了IP地址隐藏。但问题是,你若使用的是TCP协议的话,对方即便许可了也无法把许可信息发送给你,而是发送到了你改掉的IP地址那里去了,结果你和对方无法建立连接,当然也就无法从对方获得数据,基本上没什么意义,但是对于有些探测是可行的,比如端口扫描器。当然对于UDP就很有效果了,不少网络炸弹就是用UDP实现IP地址隐藏的。    事实上,现在的Windows平台的网络炸弹大多是没有实现IP地址隐藏的。原因是在Windwos 95/98/NT上的Winsock库不支持对IP头的修改和自定义,在Windows2000和Unix/Linux才允许。当然,完全可以通过自己写一套底层的Socket库来实现,但这样并不容易,更多的是通过写Vxd/Sys等设备驱动程序来实现的,当然对一般编程人员而言,也有一定难度。    所以,总结一下就是:在网络上隐藏IP地址基本上是不可能的。