免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2411 | 回复: 4
打印 上一主题 下一主题

gethostbyname()的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-09-09 19:56 |只看该作者 |倒序浏览
gethostbyname()这个函数在好多语言里都有  但是他的意思是什么呢?
我在perl的书中看到说在什么主机的什么文件中得到地址?
那是在/etv/hosts吗?想想不应该吧  那个文件有几个地址啊,
那么是 dns server吗?


还有就是用perl可以构造数据包吗?我在一本书中看到perl也可以象c一样做struct

homepg_rh_logo.gif (1.11 KB, 下载次数: 66)

homepg_rh_logo.gif

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-09-10 08:41 |只看该作者

gethostbyname()的问题

perldoc -f gethostbyname
perldoc perl
簡單說明一下:
$packed_addr = gethostbyname($name);
其中$name必須是像abc.cde或是在你的/etc/hosts中有defined
的string...
然後他會依照你在/etc/nsswitch.conf對於hosts
define的先後順序..去對/etc/hosts,nis,dns做request..
回傳被pack後的ip address...
要unpack,只要用inet_ntoa轉回來就行了..
給你一個例子

  1. #!/usr/bin/perl
  2. use Socket;
  3. $data =gethostbyname("localhost");
  4. print inet_ntoa($data)."\n";
复制代码

论坛徽章:
0
3 [报告]
发表于 2003-09-10 09:40 |只看该作者

gethostbyname()的问题

gethostbyname(“hostname"从/etc/hosts文件中取出一项记录。
参数是主机名。
如果没有就去检查NIS数据库或DNS,
返回值是($name,$aliases,$addrtype,$length,@addrs)

论坛徽章:
0
4 [报告]
发表于 2003-09-10 11:20 |只看该作者

gethostbyname()的问题

要是我的/etc/hosts里没有那个hostname呢?
2.
gethostbyaddess()里的ip是任意真确的ip就可以得到相应的列表吗?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-09-10 11:46 |只看该作者

gethostbyname()的问题

perldoc -f gethostbyaddr
建議你先看看..:)
裡面有蠻詳細的說明...
gethostbyname

gethostbyaddr
可以拿來對於FQDN做反向的查詢..
這樣子就可以避免有人用fake ip的問題...
很多BBS..都有這個功能,檢查你的domain name與
你的ip address是不是一對一的關係..

gethostbyname不會只看/etc/hosts..他還會檢查
NIS數據庫...與DNS..真的查不到才回傳error...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP