一个用于网络的工具函数库


Posted in PHP onOctober 09, 2006

<?PHP

/*
PHP Net Toolpack v0.1 08.05.2000,
by waddler(@netlife.fi)
phpnettoolpack.sourceforge.net
To be distributed under GNU GPL
*/

// whois(hostname [,username, [port]])
Function whois ($a_server, $a_query="", $a_port=43) {
$sock = fsockopen($a_server, $a_port, &$errno, &$errstr, 10);
if (!$sock)
{
echo "$errstr ($errno)<BR>n";
} else {
fputs($sock, "$a_queryrn");
while(!feof($sock))
{
$buf = fgets($sock,128);
if (ereg( "Whois Server:", $buf))
{
$a_server = str_replace( "Whois Server: ", "", $buf);
$a_server = trim($a_server);
}
}
fclose($sock);

if ($a_server)
{
print "<B>$a_query is registered at $a_server:</B><BR>";
$sock = fsockopen($a_server, 43, &$errno, &$errstr, 10);
if(!$sock)
{
echo "Could not open connection to $a_server on port $a_port.n";
echo "$errstr ($errno)<BR>n";
} else {
fputs($sock, "$a_queryrn");
while(!feof($sock))
{
echo fgets($sock,128);
}
fclose($sock);
}
} else {
echo "<b>$a_query was not found.</b><BR>";
}
}
}

// finger(hostname [,username, [port]])
Function finger ($a_server, $a_query="", $a_port=79) {
$sock=fsockopen($a_server,$a_port, &$errno, &$errstr, 10);
if (!$sock)
{
$ret_str = "$errstr ($errno)<BR>n";
} else {
fputs($sock,"$a_queryn");
while (!feof($sock)) { $ret_str .= fgets($sock,128); }
fclose($sock);
}
echo $ret_str;
return $ret_str;
}

// traceroute(hostname)
Function traceroute ($a_query) {
exec("traceroute $a_query",$ret_strs);
$str_count = count($ret_strs);
for ($count=0; $count < $str_count; $count++)
print "$count/$str_count".$ret_strs[$count]."n";
}

// -----------------------------------------------------------

$app_name = "PHP Net Toolpack";
$app_version = "0.1";

$TOOLS = array(
"finger" => "Finger",
"traceroute" => "Traceroute",
"whois" => "Whois?"
);

// when included inside <select name="tool"> on a html file ..
if ($tool=="listtools")
{
while (list($key, $val) = each($TOOLS)) {
print " <OPTION VALUE="".$key."">".$val."</OPTION>n";
}
exit;
}

// print appropriate html header
print "<HTML>";
if ($tool)
{
print "<HEAD><TITLE>".$tool." for ".$query."</TITLE></HEAD>n";
print "<BODY>n<H3>".$tool." for ".$query." ..</H3>n";
} else {
print "<HEAD><TITLE>".$app_name."</TITLE></HEAD>n";
print "<BODY>n<H3>".$app_name."</H3>n";
}

// check what tool they want to use and do what is necessary
switch($tool) {
case "finger":
if ($query)
{
print "<PRE>n";
finger($server, $query);
print "</PRE>";
} else {
?>

<FORM ACTION="<?PHP echo($PHP_SELF. "?tool=".$tool); ?>" METHOD="post">
Server : <INPUT TYPE="text" NAME="server" VALUE="localhost"> <BR>
Query : <INPUT TYPE="text" NAME="query" SIZE="40" MAXLENGTH="100"> <BR>
<INPUT TYPE="submit" VALUE="Finger">
</FORM>

<?PHP
}
break;

case "traceroute":
if ($query)
{
print "<PRE>n";
traceroute($query);
print "</PRE>";
} else {
?>

<FORM ACTION="<?PHP echo($PHP_SELF. "?tool=".$tool); ?>" METHOD="post">
Query : <INPUT TYPE="text" NAME="query" SIZE="40" MAXLENGTH="100"> <BR>
<INPUT TYPE="submit" VALUE="Trace route">
</FORM>

<?PHP
}
break;

case "whois":
if ($query)
{
print "<PRE>n";
whois($server,$query);
print "</PRE>";
} else {
?>  

<!-- <UL>
To look up a NIC handle, host name, or registrant,
use one of the keywords below:<BR>
<LI>To search by NIC handle (or contact), type "handle WA3509"</LI><BR>
<LI>To search by name, type "name lastname, firstname" </LI><BR>
<LI>To search by company name, type "name The Sample Corporation" </LI><BR>
<LI>To search by domain name, type "example.com" </LI><BR>
<LI>To search by IP address, type "host 121.23.2.7" </LI><BR>
<LI>To search by host or nameserver name, type "host ns1.worldnic.com" </LI><BR>
(examples are from networksolutions.com)
</UL> -->

<FORM ACTION="<?PHP echo($PHP_SELF. "?tool=".$tool); ?>" METHOD="post">
This will find .com, .org, and .net domains<BR>
Server : <INPUT TYPE="text" NAME="server" VALUE="rs.internic.net"> <BR>
Query : <INPUT TYPE="text" NAME="query" SIZE="40" MAXLENGTH="100"> <BR>
<INPUT TYPE="submit" VALUE="<?PHP echo $TOOLS[$tool]; ?>">
</FORM>

<?PHP
}
break;

default:
print "<UL>Currently supported tools are:n";
while (list($key, $val) = each($TOOLS)) {
echo "<LI><A HREF="".$PHP_SELF."?tool=".$key."">".$val."</A></LI>n";
}
print "</UL>n";
break;
}

print "n<HR><SMALL>".$app_name." v".$app_version."</SMALL>n";
print "<BODY>n</HTML>";

?> 

PHP 相关文章推荐
小偷PHP+Html+缓存
Dec 20 PHP
PHPMYADMIN 简明安装教程 推荐
Mar 07 PHP
php 函数使用方法与函数定义方法
May 09 PHP
PHP生成等比缩略图类和自定义函数分享
Jun 25 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
PHP实现简单数字分页效果
Jul 26 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
Jan 07 PHP
php生成txt文件实例代码介绍
Apr 28 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
Feb 18 PHP
自制PHP框架之设计模式
May 07 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
Jan 29 PHP
PHP之认识(二)关于Traits的用法详解
Apr 11 PHP
oracle资料库函式库
Oct 09 #PHP
针对初学PHP者的疑难问答(2)
Oct 09 #PHP
模仿OSO的论坛(三)
Oct 09 #PHP
在PHP3中实现SESSION的功能(一)
Oct 09 #PHP
我用php+mysql写的留言本
Oct 09 #PHP
在PHP3中实现SESSION的功能(三)
Oct 09 #PHP
在PHP3中实现SESSION的功能(二)
Oct 09 #PHP
You might like
zend api扩展的php对象的autoload工具
2011/04/18 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
js 链式延迟执行DOME
2012/01/04 Javascript
在ASP.NET中使用JavaScript脚本的方法
2013/11/12 Javascript
js判断页面中是否有指定控件的简单实例
2014/03/04 Javascript
JavaScript重定向URL参数的两种方法小结
2016/10/19 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
JS实现根据数组对象的某一属性排序操作示例
2019/01/14 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
python下载微信公众号相关文章
2019/02/26 Python
Django 请求Request的具体使用方法
2019/11/11 Python
python装饰器原理与用法深入详解
2019/12/19 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
golang/python实现归并排序实例代码
2020/08/30 Python
中科创达面试题
2016/12/28 面试题
护士自荐信范文
2013/12/15 职场文书
给同学的道歉信
2014/01/16 职场文书
学生手册家长评语
2014/02/10 职场文书
师德演讲稿范文
2014/05/06 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
社区节水倡议书
2015/04/29 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
MySQL学习之基础操作总结
2022/03/19 MySQL