iframe upload:
<iframe frameborder=0 style="width:350px;height:60px;padding:0px;border:0px;background:#fff" src="?act=upload"></iframe>
上传接口iframe回调主窗口的函数,有点类似与ajax:
if($_GET['act']=='upload'){
if($_POST['upload']=='upload'){
$uploaddir ='upload/';
$uploadfile = $uploaddir . basename($_FILES['file']['name']);
if (!move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
echo "<script>alert('文件上传失败!');</script>";exit;
}else{
$f1="<img src='{$uploadfile}' id='ImageDrag' class='imagePhoto' >";
$f2="<img src='{$uploadfile}' id='ImageIcon' class='imagePhoto'>";
echo '<script language="javascript">parent.$("#ImageDragContainer").html("'.$f1.'");parent.$("#IconContainer").html("'.$f2.'");parent.$("#bigImage").val("'.$uploadfile.'");parent.go();parent.move();</script>';
}
}
接受上传文件,Iframe提交后用js来修改下面的html中的img:
<div id="ImageDragContainer">
<img src='image/dd.JPG' id='ImageDrag' class='imagePhoto'>
</div>
<div id="IconContainer">
<img src='image/dd.JPG' id='ImageIcon' class='imagePhoto'>
</div>
$iconElement = $("#ImageIcon");
$imagedrag = $("#ImageDrag");
alert($iconElement.attr('src'));
alert($imagedrag.attr('src'));
<iframe frameborder=0 style="width:350px;height:60px;padding:0px;border:0px;background:#fff" src="?act=upload"></iframe>
上传接口iframe回调主窗口的函数,有点类似与ajax:
if($_GET['act']=='upload'){
if($_POST['upload']=='upload'){
$uploaddir ='upload/';
$uploadfile = $uploaddir . basename($_FILES['file']['name']);
if (!move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
echo "<script>alert('文件上传失败!');</script>";exit;
}else{
$f1="<img src='{$uploadfile}' id='ImageDrag' class='imagePhoto' >";
$f2="<img src='{$uploadfile}' id='ImageIcon' class='imagePhoto'>";
echo '<script language="javascript">parent.$("#ImageDragContainer").html("'.$f1.'");parent.$("#IconContainer").html("'.$f2.'");parent.$("#bigImage").val("'.$uploadfile.'");parent.go();parent.move();</script>';
}
}
接受上传文件,Iframe提交后用js来修改下面的html中的img:
<div id="ImageDragContainer">
<img src='image/dd.JPG' id='ImageDrag' class='imagePhoto'>
</div>
<div id="IconContainer">
<img src='image/dd.JPG' id='ImageIcon' class='imagePhoto'>
</div>
$iconElement = $("#ImageIcon");
$imagedrag = $("#ImageDrag");
alert($iconElement.attr('src'));
alert($imagedrag.attr('src'));
php定时刷新页面
很简单就这一句:header(“Refresh: 5″); 5代表5秒刷新一次。
但注意:在header()之前不能有任何输出。
网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况:
阅读全文
很简单就这一句:header(“Refresh: 5″); 5代表5秒刷新一次。
但注意:在header()之前不能有任何输出。
网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况:
阅读全文
1.公关启示:
作为互联网来说,传播速度是最快的,但是,公关的能力绝对是值得世界称道,要屏蔽也是最快的,比如百度直接屏蔽掉很多,你会发现如下面的情况:
您要浏览的贴子不存在,关闭当前页面。
2.道德启示
就其本人来说,无非是长得太帅,如果是在前些年,这样的人有个三妻四妾的也没有关系,但是现在来说:如果一个男人没有结婚,有几个女朋友,倒也是自己的事情,只要没有闹大,人们是不觉得怎么样的,可能更多的矛头指向女方,但是一旦结婚,这是涉及到其道德上的问题了,男人也就难免会让人觉得不对,这种事情法律上也没有规定这种情况犯罪,再次证明一个萝卜一个坑的观点是错误的,有些人一个人可有好几个坑,而有的人呢,一个人一个坑都没有,嘻嘻嘻!
3.婚姻关系启示
男人不和小三结婚,无非是不想割舍老婆,夫妻感情嘛,和小三是不一样的,这次事件完全可以定性为小三争取地位,男人更爱老婆的一次男人道德的斗争,这儿并不是说那个男人还反而有道德了,呵呵,现在的小三也越来越会争取地位了,权利意识很强呀,动不动就拿DV拍那个该死的男人,哭会就跳楼,反正据闻古今:一哭二闹三上吊的,一般上吊死的为零。
4.女人心思启示
之所以有把这种事情写在网上,无非是最后的结局:可惜不是你,陪我到最后,心里想:追不到这个男的就弄臭这个男的的一种悖论思想,女人常常在说男人怎么怎么自私,其实这种事情上,她们才是最自私的。
5.人气启示
如果是一个一般的人,能有这种一个萝卜两个坑的待遇,那算是他的福气,而他本人身居要职,正好是在互联网风口浪尖的人,不吵不行,网络没有新闻看,工作没有劲的,所以给大家提神,社会工作属性决定其吵作和关注的力度。
以上仅供个人观点,成一家之言,如有雷同或者观点不一之处,敬请高论。
转载请注明出处:http://blog.5ifd.com/
http://szcody.m.oeeee.com/blog/archive/2009/10/29/751783.html
http://xiaosanqusi.m.oeeee.com/blog/archive/2009/10/30/752092.html
作为互联网来说,传播速度是最快的,但是,公关的能力绝对是值得世界称道,要屏蔽也是最快的,比如百度直接屏蔽掉很多,你会发现如下面的情况:
您要浏览的贴子不存在,关闭当前页面。
2.道德启示
就其本人来说,无非是长得太帅,如果是在前些年,这样的人有个三妻四妾的也没有关系,但是现在来说:如果一个男人没有结婚,有几个女朋友,倒也是自己的事情,只要没有闹大,人们是不觉得怎么样的,可能更多的矛头指向女方,但是一旦结婚,这是涉及到其道德上的问题了,男人也就难免会让人觉得不对,这种事情法律上也没有规定这种情况犯罪,再次证明一个萝卜一个坑的观点是错误的,有些人一个人可有好几个坑,而有的人呢,一个人一个坑都没有,嘻嘻嘻!
3.婚姻关系启示
男人不和小三结婚,无非是不想割舍老婆,夫妻感情嘛,和小三是不一样的,这次事件完全可以定性为小三争取地位,男人更爱老婆的一次男人道德的斗争,这儿并不是说那个男人还反而有道德了,呵呵,现在的小三也越来越会争取地位了,权利意识很强呀,动不动就拿DV拍那个该死的男人,哭会就跳楼,反正据闻古今:一哭二闹三上吊的,一般上吊死的为零。
4.女人心思启示
之所以有把这种事情写在网上,无非是最后的结局:可惜不是你,陪我到最后,心里想:追不到这个男的就弄臭这个男的的一种悖论思想,女人常常在说男人怎么怎么自私,其实这种事情上,她们才是最自私的。
5.人气启示
如果是一个一般的人,能有这种一个萝卜两个坑的待遇,那算是他的福气,而他本人身居要职,正好是在互联网风口浪尖的人,不吵不行,网络没有新闻看,工作没有劲的,所以给大家提神,社会工作属性决定其吵作和关注的力度。
以上仅供个人观点,成一家之言,如有雷同或者观点不一之处,敬请高论。
转载请注明出处:http://blog.5ifd.com/
http://szcody.m.oeeee.com/blog/archive/2009/10/29/751783.html
http://xiaosanqusi.m.oeeee.com/blog/archive/2009/10/30/752092.html
如题:
1 <img src="javascript:test.src='url';" name="test">
2 <img src="javascript:this.src='url';">
对于这两种写法,第一种能显示图片,第二种不能。
请问哪里错了。
我想在不知道这个“name”的时候,用这种方式给出图片的地址,该怎么做?
高手给指点一下阿!~:
不在img里写,在IMG的上边的TD里写
childNodes[0].src=""
<img src="Users.gif" style="display:none" onload="this.style.display='';this.src='image.gif';">
其实我觉得你在每个IMG的外面都加一个<span>这样就不会有问题了
example:[td这样写的]
<tr>
<td id="Min">
<img alt="缩小" src="image/_c.gif" onMouseOver="this.src='image/_c.gif';" onMouseOut="this.src='image/_h.gif';" id="moresmall" class="smallbig" />
</td>
<td>
<div id="bar">
<div class="child">
</div>
</div>
</td>
<td id="Max">
<img alt="放大" src="image/c.gif" onMouseOver="this.src='image/c.gif';" onMouseOut="this.src='image/h.gif';" id="morebig" class="smallbig" />
</td>
</tr>
1 <img src="javascript:test.src='url';" name="test">
2 <img src="javascript:this.src='url';">
对于这两种写法,第一种能显示图片,第二种不能。
请问哪里错了。
我想在不知道这个“name”的时候,用这种方式给出图片的地址,该怎么做?
高手给指点一下阿!~:
不在img里写,在IMG的上边的TD里写
childNodes[0].src=""
<img src="Users.gif" style="display:none" onload="this.style.display='';this.src='image.gif';">
其实我觉得你在每个IMG的外面都加一个<span>这样就不会有问题了
example:[td这样写的]
<tr>
<td id="Min">
<img alt="缩小" src="image/_c.gif" onMouseOver="this.src='image/_c.gif';" onMouseOut="this.src='image/_h.gif';" id="moresmall" class="smallbig" />
</td>
<td>
<div id="bar">
<div class="child">
</div>
</div>
</td>
<td id="Max">
<img alt="放大" src="image/c.gif" onMouseOver="this.src='image/c.gif';" onMouseOut="this.src='image/h.gif';" id="morebig" class="smallbig" />
</td>
</tr>
在美国十多年,回到故土。旧日朋友大都不在学术界,听说我一直都在搞哲学,都会好奇地问我一些问题,对这些问题在他们看来我也许会有令人满意的答案。“先有鸡还是先有蛋”就是这类问题中的最常见的一个。虽然这不是现代哲学家讨论的典型问题,但人们认为哲学家对其应该有个较明确的说法,也是合乎情理的。不过,我确实没有仔细查阅过其他哲学家是否对这个问题有过较系统的讨论,因为这不是正规的学术论文,我也不妨试着说出一点自己的想法,而毋须考虑是否重复或忽略了他人的观点而不自知。
阅读全文
阅读全文
在Ghost里修复就会提示你重新启动,然后进入ghost自己选当时自己前面Ghost的文件恢复即可。
之前用了近一年多的免费杀软小红伞。
小红伞的杀毒、监控能力还是挺强的,但总觉得操作起来不够人性化,老是误报
最近看到avast!出了5.0最新的beta版,就下载下来用用,第一感觉就是界面比以前的老版本漂亮了不少,
并且是官方中文版的,相对于英文版的小红伞,一下就感觉亲切多了。
目前最新的avast免费版是5.0 beta2
下载地址:http://dl.pconline.com.cn/html_2/1/66/id=10585&pn=0.html
小红伞的杀毒、监控能力还是挺强的,但总觉得操作起来不够人性化,老是误报
最近看到avast!出了5.0最新的beta版,就下载下来用用,第一感觉就是界面比以前的老版本漂亮了不少,
并且是官方中文版的,相对于英文版的小红伞,一下就感觉亲切多了。
目前最新的avast免费版是5.0 beta2
下载地址:http://dl.pconline.com.cn/html_2/1/66/id=10585&pn=0.html
查看apache运行的用户和组:
vi ../../../../apache2/conf/httpd.conf
User nobody
Group nogroup
一般不是fast cgi模式的时候,应该似乎apache的权限,但这儿,我们的apache是noboey nogroup,而
vi /etc/group
nogroup:x:65534:nobody
vi /etc/passwd
nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash
jackxiang:/etc # ps aux|grep httpd
root 9910 0.0 0.1 149460 11896 ? Ss Aug25 0:33 /usr/local/httpd-2.0.59/bin/httpd -k restart
nobody 852 0.0 0.2 149848 23692 ? S 15:13 0:03 /usr/local/httpd-2.0.59/bin/httpd -k restart
nobody 886 0.0 0.2 149828 23624 ? S 15:14 0:03 /usr/local/httpd-2.0.59/bin/httpd -k restart
nobody 892 0.0 0.3 149880 25092 ? S 15:14 0:03 /usr/local/httpd-2.0.59/bin/httpd -k restart
结合php代码:
if (is_dir ( $directory )) {
var_dump(is_writable ( $directory ));
exit;
if (is_writable ( $directory )) {
if (@move_uploaded_file ( $filename, $newfile )) {
// chmod our file
@chmod ( $newfile, $fileMode );
return $newfile;
}
}
}
$adlog = new TMLog ( );
$adlog->ll ( "Handle upload file Error" );
结果:
bool(false)
查看上传目录权限:
Jackxiang:/data/jackxiang/henganxy/htdocs/view # ls -lart|grep data
drwxr-xr-x 2 jackxiang users 4096 Oct 27 18:20 data
是jackxiang 不是nobody nogroup组,于是得修改:
chown -R nobody:nogroup data/
chmod -R 755 data/
755 是拥有的可以写入,其余有执行和读取权限,没有写入权限。
然后在上传,后查看目录如下:
Jackxiang:/data/jackxiang/henganxy/htdocs/view # ls data/
2009_10_27_19_38_50_1.jpg mini_2009_10_27_19_38_50_1.jpg
成功!!!
vi ../../../../apache2/conf/httpd.conf
User nobody
Group nogroup
一般不是fast cgi模式的时候,应该似乎apache的权限,但这儿,我们的apache是noboey nogroup,而
vi /etc/group
nogroup:x:65534:nobody
vi /etc/passwd
nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash
jackxiang:/etc # ps aux|grep httpd
root 9910 0.0 0.1 149460 11896 ? Ss Aug25 0:33 /usr/local/httpd-2.0.59/bin/httpd -k restart
nobody 852 0.0 0.2 149848 23692 ? S 15:13 0:03 /usr/local/httpd-2.0.59/bin/httpd -k restart
nobody 886 0.0 0.2 149828 23624 ? S 15:14 0:03 /usr/local/httpd-2.0.59/bin/httpd -k restart
nobody 892 0.0 0.3 149880 25092 ? S 15:14 0:03 /usr/local/httpd-2.0.59/bin/httpd -k restart
结合php代码:
if (is_dir ( $directory )) {
var_dump(is_writable ( $directory ));
exit;
if (is_writable ( $directory )) {
if (@move_uploaded_file ( $filename, $newfile )) {
// chmod our file
@chmod ( $newfile, $fileMode );
return $newfile;
}
}
}
$adlog = new TMLog ( );
$adlog->ll ( "Handle upload file Error" );
结果:
bool(false)
查看上传目录权限:
Jackxiang:/data/jackxiang/henganxy/htdocs/view # ls -lart|grep data
drwxr-xr-x 2 jackxiang users 4096 Oct 27 18:20 data
是jackxiang 不是nobody nogroup组,于是得修改:
chown -R nobody:nogroup data/
chmod -R 755 data/
755 是拥有的可以写入,其余有执行和读取权限,没有写入权限。
然后在上传,后查看目录如下:
Jackxiang:/data/jackxiang/henganxy/htdocs/view # ls data/
2009_10_27_19_38_50_1.jpg mini_2009_10_27_19_38_50_1.jpg
成功!!!
线索一,腾讯推出“QQ返利平台”,向第三方B2C网站导入用户。当用户登陆QQ后,可通过QQ返利频道的链接到达比如当当、京东、Vancl等商城。购物后,将收到QQ返回的占商品价格3%-22%不等的现金。
线索二,QQ空间接入第三方网站的功能。用户可以在其QQ空间里直接玩耍到“5分钟”所提供的比如种菜、偷菜这样的社交游戏,阅读到豆瓣网提供的有关热门书籍和电影的评论。
线索二,QQ空间接入第三方网站的功能。用户可以在其QQ空间里直接玩耍到“5分钟”所提供的比如种菜、偷菜这样的社交游戏,阅读到豆瓣网提供的有关热门书籍和电影的评论。
$_FILES["表单上文件框的名称"]["相关内容"]为上传后台接收到的文件的相关信息,是内置的一个超全局变量,相关内容一共包括五种内容:
原文件名及路径:[name]
文件的MIME类型:[type],例如"image/gif"
已上传文件的大小:[size]
错误信息:[error](0为正常,1234分别代表四个不同的错误信息)
文件被上传后在服务器端临时存储的文件名及路径:[tmp_name]
我们可以通过判断error是否为0来判断上传是否出错,例:
$_FILES["uppic"]["error"]==0 判断上传是否出错
还可以通过判断name是否为空来判断用户是否选择过要上传的文件
$_FILES["uppic"]["name"]=="" 判断用户是否选择过要上传的文件
原文件名及路径:[name]
文件的MIME类型:[type],例如"image/gif"
已上传文件的大小:[size]
错误信息:[error](0为正常,1234分别代表四个不同的错误信息)
文件被上传后在服务器端临时存储的文件名及路径:[tmp_name]
我们可以通过判断error是否为0来判断上传是否出错,例:
$_FILES["uppic"]["error"]==0 判断上传是否出错
还可以通过判断name是否为空来判断用户是否选择过要上传的文件
$_FILES["uppic"]["name"]=="" 判断用户是否选择过要上传的文件
潜水至今,仍没有发现大家讨论embedded 的话题。那么我先抛砖引玉了。
关于embedded system,大家都不陌生,伸手就摸到的手机,抬眼就看到的冰箱电视,出门开的汽车,工厂里的工业自动化控件。说到工业自动化,工业机器人、医药设备、电话系统、卫星、飞行系统等领域,embedded system更是无处不在。通常这些都是被控制执行某些专用功能系统或者设备,它所运行的软件也通常都是固化的(firmware),终端用户很难或者不可能改变。所以一直以来embedded system的性能和可扩展性都是一个关键。Intel多核和虚拟化技术为这个问题开启了一片窗。这两项技术让硬件和IA构架集中化处理以达到降低成本的目的。Intel一直都在努力完善这两项技术在embedded system上面的应用和扩展,对Wind River 的收购,显然也是看重了Wind River在embedded system 上面成熟的软件框架。当然MS 也有一套针对于embedded system的产品:Windows Embedded Enterprise。但是显然,在Embedded 领域,Linux 比 Windows 系统在功耗和占用空间上更有优势。Embedded Linux 已经对标准的Linux经过了针对embedded system的量身定做,裁剪处理,能够固化在容量只有几K或者几M字节的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用Linux操作系统。发展至今,Embedded Linux具备了广泛的硬件支持和稳定的市场。
关于embedded system,大家都不陌生,伸手就摸到的手机,抬眼就看到的冰箱电视,出门开的汽车,工厂里的工业自动化控件。说到工业自动化,工业机器人、医药设备、电话系统、卫星、飞行系统等领域,embedded system更是无处不在。通常这些都是被控制执行某些专用功能系统或者设备,它所运行的软件也通常都是固化的(firmware),终端用户很难或者不可能改变。所以一直以来embedded system的性能和可扩展性都是一个关键。Intel多核和虚拟化技术为这个问题开启了一片窗。这两项技术让硬件和IA构架集中化处理以达到降低成本的目的。Intel一直都在努力完善这两项技术在embedded system上面的应用和扩展,对Wind River 的收购,显然也是看重了Wind River在embedded system 上面成熟的软件框架。当然MS 也有一套针对于embedded system的产品:Windows Embedded Enterprise。但是显然,在Embedded 领域,Linux 比 Windows 系统在功耗和占用空间上更有优势。Embedded Linux 已经对标准的Linux经过了针对embedded system的量身定做,裁剪处理,能够固化在容量只有几K或者几M字节的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用Linux操作系统。发展至今,Embedded Linux具备了广泛的硬件支持和稳定的市场。
但是用的onclick事件,所以点击一下,就放大或者缩小一点.
来源:http://www.85flash.com/Get/JavaScript/2006-8-17/115327705.htm
<script language="javascript">
var oTime;
function chgSize(args) {
var oImg = document.all['oImg'];
oImg.style.zoom = parseInt(oImg.style.zoom) + (args ? +1 : -1) + '%';
oTime = window.setTimeout('chgSize(' + args + ')', 100);
}
document.onmouseup = function() {
window.clearTimeout(oTime);
}
</script>
<div style="height: 200px; overflow: auto;">
<img id="oImg" src="/Files/BeyondPic/2006-8/14/28youandi.jpg" style="zoom: 100%;">
</div>
<button onmousedown="chgSize(true);" onmouseup="window.clearTimeout(oTime);">↑</button>
<button onmousedown="chgSize(false);" onmouseup="window.clearTimeout(oTime);">↓</button>
var oTime;
function chgSize(args) {
var oImg = document.all['oImg'];
oImg.style.zoom = parseInt(oImg.style.zoom) + (args ? +1 : -1) + '%';
oTime = window.setTimeout('chgSize(' + args + ')', 100);
}
document.onmouseup = function() {
window.clearTimeout(oTime);
}
</script>
<div style="height: 200px; overflow: auto;">
<img id="oImg" src="/Files/BeyondPic/2006-8/14/28youandi.jpg" style="zoom: 100%;">
</div>
<button onmousedown="chgSize(true);" onmouseup="window.clearTimeout(oTime);">↑</button>
<button onmousedown="chgSize(false);" onmouseup="window.clearTimeout(oTime);">↓</button>
来源:http://www.85flash.com/Get/JavaScript/2006-8-17/115327705.htm
TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
TCPDUMP简介
在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的。对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过sniffer工具来分析原因,找出造成网络阻塞的来源。对于网络程序员来说,通过sniffer工具来调试程序。
用过windows平台上的sniffer工具(例如,netxray和sniffer pro软件)的朋友可能都知道,在共享式的局域网中,采用sniffer工具简直可以对网络中的所有流量一览无余!Sniffer工具实际上就是一个网络上的抓包工具,同时还可以对抓到的包进行分析。由于在共享式的网络中,信息包是会广播到网络中所有主机的网络接口,只不过在没有使用sniffer工具之前,主机的网络设备会判断该信息包是否应该接收,这样它就会抛弃不应该接收的信息包,sniffer工具却使主机的网络设备接收所有到达的信息包,这样就达到了网络监听的效果。
Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是必不可少的。所以,今天我们就来看看Linux中强大的网络数据采集分析工具——TcpDump。
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。
作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东东之一。
顾名思义,TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的 FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。
普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。
-----------------------
bash-2.02# tcpdump
tcpdump: listening on eth0
11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50
11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=43
0000 0000 0080 0000 1007 cf08 0900 0000
0e80 0000 902b 4695 0980 8701 0014 0002
000f 0000 902b 4695 0008 00
11:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97
ffff 0060 0004 ffff ffff ffff ffff ffff
0452 ffff ffff 0000 e85b 6d85 4008 0002
0640 4d41 5354 4552 5f57 4542 0000 0000
0000 00
^C
------------------------
首先我们注意一下,从上面的输出结果上可以看出来,基本上tcpdump总的的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数
TcpDump的参数化支持
tcpdump支持相当多的不同参数,如使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,使用-c参数指定要监听的数据包数量,使用-w参数指定将监听到的数据包写入文件中保存,等等。
然而更复杂的tcpdump参数是用于过滤目的,这是因为网络中流量很大,如果不加分辨将所有的数据包都截留下来,数据量太大,反而不容易发现需要的数据包。使用这些参数定义的过滤规则可以截留特定的数据包,以缩小目标,才能更好的分析网络中存在的问题。tcpdump使用参数指定要监视数据包的类型、地址、端口等,根据具体的网络问题,充分利用这些过滤规则就能达到迅速定位故障的目的。请使用man tcpdump查看这些过滤规则的具体用法。
显然为了安全起见,不用作网络管理用途的计算机上不应该运行这一类的网络分析软件,为了屏蔽它们,可以屏蔽内核中的bpfilter伪设备。一般情况下网络硬件和TCP/IP堆栈不支持接收或发送与本计算机无关的数据包,为了接收这些数据包,就必须使用网卡的混杂模式,并绕过标准的TCP/IP 堆栈才行。在FreeBSD下,这就需要内核支持伪设备bpfilter。因此,在内核中取消bpfilter支持,就能屏蔽tcpdump之类的网络分析工具。
并且当网卡被设置为混杂模式时,系统会在控制台和日志文件中留下记录,提醒管理员留意这台系统是否被用作攻击同网络的其他计算机的跳板。
May 15 16:27:20 host1 /kernel: fxp0: promiscuous mode enabled
虽然网络分析工具能将网络中传送的数据记录下来,但是网络中的数据流量相当大,如何对这些数据进行分析、分类统计、发现并报告错误却是更关键的问题。网络中的数据包属于不同的协议,而不同协议数据包的格式也不同。因此对捕获的数据进行解码,将包中的信息尽可能的展示出来,对于协议分析工具来讲更为重要。昂贵的商业分析工具的优势就在于它们能支持很多种类的应用层协议,而不仅仅只支持tcp、udp等低层协议。
从上面tcpdump的输出可以看出,tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。
TCP功能
数据过滤
不带任何参数的TcpDump将搜索系统中所有的网络接口,并显示它截获的所有数据,这些数据对我们不一定全都需要,而且数据太多不利于分析。所以,我们应当先想好需要哪些数据,TcpDump提供以下参数供我们选择数据:
-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。
例如:tcpdump -b arp 将只显示网络中的arp即地址转换协议信息。
-i 选择过滤的网络接口,如果是作为路由器至少有两个网络接口,通过这个选项,就可以只过滤指定的接口上通过的数据。例如:
tcpdump -i eth0 只显示通过eth0接口上的所有报头。
src、dst、port、host、net、ether、gateway这几个选项又分别包含src、dst 、port、host、net、ehost等附加选项。他们用来分辨数据包的来源和去向,src host 192.168.0.1指定源主机IP地址是192.168.0.1,dst net 192.168.0.0/24指定目标是网络192.168.0.0。以此类推,host是与其指定主机相关无论它是源还是目的,net是与其指定网络相关的,ether后面跟的不是IP地址而是物理地址,而gateway则用于网关主机。可能有点复杂,看下面例子就知道了:
tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24
过滤的是源主机为192.168.0.1与目的网络为192.168.0.0的报头。
tcpdump ether src 00:50:04:BA:9B and dst……
过滤源主机物理地址为XXX的报头(为什么ether src后面没有host或者net?物理地址当然不可能有网络喽)。
Tcpdump src host 192.168.0.1 and dst port not telnet
过滤源主机192.168.0.1和目的端口不是telnet的报头。
ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。
例如:
tcpdump ip src……
只过滤数据-链路层上的IP报头。
tcpdump udp and src host 192.168.0.1
只过滤源主机192.168.0.1的所有udp报头。
数据显示/输入输出
TcpDump提供了足够的参数来让我们选择如何处理得到的数据,如下所示:
-l 可以将数据重定向。
如tcpdump -l >tcpcap.txt将得到的数据存入tcpcap.txt文件中。
-n 不进行IP地址到主机名的转换。
如果不使用这一项,当系统中存在某一主机的主机名时,TcpDump会把IP地址转换为主机名显示,就像这样:eth0 < ntc9.1165> router.domain.net.telnet,使用-n后变成了:eth0 < 192.168.0.9.1165 > 192.168.0.1.telnet。
-nn 不进行端口名称的转换。
上面这条信息使用-nn后就变成了:eth0 < ntc9.1165 > router.domain.net.23。
-N 不打印出默认的域名。
还是这条信息-N 后就是:eth0 < ntc9.1165 > router.telnet。
-O 不进行匹配代码的优化。
-t 不打印UNIX时间戳,也就是不显示时间。
-tt 打印原始的、未格式化过的时间。
-v 详细的输出,也就比普通的多了个TTL和服务类型
select FQQ,FScoreCount from Tbl_User into outfile "/tmp/terminatedtest.txt" fields terminated by ",";
select * from test into outfile '/home/user/test.txt'
在linux(centos)下 ,启动了mysql 并给用户文件读写的权利
grant file on *.* to root@localhost;
在linux系统上,目录的权限全部是 rwxrwxrwx
chmod 777 ...
/home/user/test
drwxrwxrwx 4 root root 4096 Sep 3 18:42 home
drwxrwxrwx 10 mapuser mapuser 4096 Sep 4 03:41 user
drwxrwxrwx 5 mapuser mapuser 4096 Sep 3 17:57 test
阅读全文
select FQQ,FScoreCount from Tbl_User into outfile "/tmp/terminatedtest.txt" fields terminated by ",";
TERMINATED BY 'n'...TERMINATED 表示字段分隔
我写这个脚本的目的是利用MySQL的select * from tablename into outfile ...语句来备份MySQL数据库,虽然没有MYSQLDUMP导出数据快,可是恢复的时候却非常快。阅读全文