windows下两个很有用的dns刷新命令

首先过往command提示符下:

先运行:ipconfig/displaydns这个命令,查看一下本机已经缓存了那些的dns信息的,然后输入下面的命令

ipconfig/flushdns

这时本机的dns缓存信息已经清空了,我们可以再次输入第一次输入的命令来看一下,

ipconfig/displaydns

利用JS获取IE客户端IP及MAC的实现

    在做B/S结构的系统时,我们常常需要获取客户端的一些信息,如IP和MAC,以结合身份验证。在ASP.NET中,要获取服务器端的MAC很容易,但是要获取客户端的MAC的地址确要花费一翻心思,通常的做法是调用Win32API或直接调用nbtstat命令,这样做有很多问题,而另一种方法就是直接用客户端脚本,我们这里用Javascript,这样做的好处是不需要服务器端进行处理,有客户端自行获取,传递到服务器端,且速度和可靠性都比在服务器端获取好。
        具体实现的html和javascript如下:
<HTML><HEAD><TITLE>WMI Scripting HTML</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
 document.forms[0].txtMACAddr.value=unescape(MACAddr);
 document.forms[0].txtIPAddr.value=unescape(IPAddr);
 document.forms[0].txtDNSName.value=unescape(sDNSName);
 //document.formbar.submit();
  </SCRIPT>

<SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
   if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
   {
    if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
    MACAddr = objObject.MACAddress;
    if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
    IPAddr = objObject.IPAddress(0);
    if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
    sDNSName = objObject.DNSHostName;
    }
  </SCRIPT>

<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY>
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
<SCRIPT language=JScript>
   var service = locator.ConnectServer();
   var MACAddr ;
   var IPAddr ;
   var DomainAddr;
   var sDNSName;
   service.Security_.ImpersonationLevel=3;
   service.InstancesOfAsync(foo, ‘Win32_NetworkAdapterConfiguration’);
   </SCRIPT>

<FORM id=formfoo name=formbar action=NICPost.asp method=post><INPUT value=00:05:5D:0E:C7:FA name=txtMACAddr> <INPUT value=192.168.0.2 name=txtIPAddr> <INPUT value=typ name=txtDNSName> </FORM></BODY></HTML>
        关键是用到两个ActiveX:
        <OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
        <OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
        不过这两个ActiveX都是系统自带,不用去下载或注册。
        接下来的工作就是用脚本和ActiveX交互,脚本可以是js或Vbs我个人喜欢用js。

JS函数实现鼠标指向后带图片的提示效果

  当鼠标移到产品缩略图上时能弹出显示大图,用JS写两个函数即可实现:

  一个函数在鼠标移到图片上调用,显示隐藏层并将图片载入到层中;

  另一个函数在鼠标移出图片上调用,清空层的内容并隐藏层。使用时需将"this.src"改为产品大图地址。

以下是引用片段:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JS函数实现鼠标指向后带图片的提示效果</title>
<script language="javascript">
function showPic(sUrl){
 var x,y;
 x = event.clientX;
 y = event.clientY;
 document.getElementById("Layer1").style.left = x;
 document.getElementById("Layer1").style.top = y;
 document.getElementById("Layer1").innerHTML = "<img src=\"" + sUrl + "\">";
 document.getElementById("Layer1").style.display = "block";
}
function hiddenPic(){
 document.getElementById("Layer1").innerHTML = "";
 document.getElementById("Layer1").style.display = "none";
}
</script>
</head>
<body>
<div id="Layer1" style="display:none;position:absolute;z-index:1;"></div>
<img src="/images/logo.gif" onmouseout="hiddenPic();" onmousemove="showPic(this.src);" />
<p></p>
<img src="/img/200406301.jpg" onmouseout="hiddenPic();" onmousemove="showPic(this.src);" />
</body>
</html>

 

CSS技巧DIV为空时占据空间的解决办法

如果给div元素设置了宽度时,比如width:100%,此时div在IE中(IE6,IE7)将占据物理空间,而在FF中不占据物理空间(正确理解)。为了表述直观,将样式直接写在元素标签内:

此时在IE中到底是什么在影响着最终的显示,又是如何解析的呢?

可能的影响因素:字体大小(font-size),字体行高(line-height),高度(height),溢出(overflow)

我们对上面的代码逐一添加过滤属性(具体的过程有兴趣的朋友,可以私下里实验一下,“自己动手,丰衣足食”!)

在测试的过程中,你会发现IE6和IE7的解析也不尽相同,比如在给div设置了line-height:0; height:0; 的样式后,IE7中显示正常了,不再占据物理空间了,而IE6却依然我行我素,亦或是悲!

最终的测试结果,最简单的方法是,给div设置高度(height)和溢出(overflow)属性:

SEO 标题的最佳下标法

大家都知道,标题是访客进入一个网页(网志)时,最先看到的部分,所以SEOmoz这次提出了「标题的最佳下标法。

原文:Best Practices for Title Tags

翻译:标题的最佳下标法 by Refly

标题的最佳下标法:

质量保证

由于网页的标题都会出现在搜寻引擎的结果显示页面,所以在每个网页的标题都请用心下!

最好使用您网站的标题,或者是您公司的厂牌名称,这样才可以帮助搜寻者快速辨认出您的网页,以后要再度到访也会比较方便。

根据研究证实,有牌的商品跟白牌商品放在一起时,消费者倾向购买有牌商品而不是白牌商品;这个研究应用到搜寻引擎结果上也是相同的,搜寻者倾向点击他们有印象的网站,而不是他们从未听过的网站。当然您也可以透过把关键词放在标题上来吸引搜寻者的点击的。 Continue reading

显示或隐藏层的js代码

显示或隐藏层的js代码,学用于标签的切换.

<script language=javascript>
/*div 切换函数
 o 点击tag的ID,一定要唯一
 total tag的个数
 cname 点击后应用的css类,点击前是cname1,点击后是cname2
 显示或隐藏的div或span名称格式为:sub1,sub2,sub3……

*/

function doClick(o,total,cname){
  o.className=cname+"2";
  var j;
  var id;
  var e;
  for(var i=1;i<=total;i++){
    id ="tag"+i;
    j = document.getElementById(id);
    e = document.getElementById("sub"+i);
    if(id != o.id){
      j.className=cname+"1";
      e.style.display = "none";
    }else{
   e.style.display = "block";
    }
  }
}
</script>

<div id="tag1" class="Tagbg2" onClick="javascript:doClick(this,2,’Tagbg’)">报社动态</div>
<div id="tag2" onClick="javascript:doClick(this,2,’Tagbg’)">教育新闻</div>
<hr>
<div id="sub1">
<font color=red>这里是tag1的内容</font>
</div>
<div id="sub2" style="display:none;">
<font color=red>这里是tag2的内容</font>
</div>

以下函数为通用函数:

/*
 *tagname 为点击tag的前缀,如tag1,tag2,tag3
* total         为tag的总个数
* cur           为当前点的tag,如tag3,则这里cur=3
* cssname 为点击前后的样式有.点击前为cssname1,点击后为cssname2
*/

function doClickTag(tagname,total,cur,cssname){
  var j;
  var e;
  for(var i=1;i<=total;i++){
  TName = tagname+i;  //menu
  SubName = tagname+"sub_"+i; //submenu
  
    j = document.getElementById(TName);
    e = document.getElementById(SubName);
   
    if(cur != i){    //未选中
    j.className=cssname+"1";
       e.style.display = "none";
    }else{
    j.className=cssname+"2";    
   e.style.display = "block";
    }
   
  }
}
 
网页调用代码如下:
<div id="gk1" class="Tagbg2" onClick="javascript:doClickTag(‘gk’,2,1,’Tagbg’)">模拟试题</div>
<div id="gk2" onClick="javascript:doClickTag(‘gk’,2,2,’Tagbg’)">历年真题</div>
<div id="gksub_1">
aaa
</div>
<div id="gksub_2" style="display:none">
bbbb
</div>

Adsense美化 – 提高你的广告点击率

Google Adsense的代码只提供了最基本的格式,外加园角和方角!这些广告格式已经被用在很多站点上,所以访客们已经对此类广告代码有了一定的抵御能力!为了能提高广告的点击率,获得更多的收入,我们可以对广告代码的背景进行美化,让其变得更加醒目!

首先来看一个供Wordpress使用的Adsense美化插件:Adsense Beautifier

通过此插件可以在你Google Adsense广告的侧边或者下边加上漂亮的小图片,从而让你的广告更加吸引别人的注意。大家可以先看看使用后的效果图:

插件的使用请自行到作者的主页查看,不在此文讨论范畴! 

使用插件来美化你的Adsense广告非常方便,但这只限于Wordpress上使用。如果你想在其他类型的站点上来美化你的Adsense广告,就需要手工进行Div+Css来布局!先来看看网上常见的几个美化背景:

要实现这样的效果,需要一些简单的CSS知识。当然你要首先准备好一些背景图片,大小根据你要投放的广告尺寸,适当的加宽加长即可!然后上传到你的网站空间或者网上的免费图片存储空间!

我们以468*60的尺寸为例,制作一个480*70的背景图片:

<div style="float: right; background-image: url(图片网址); height: 70px; width: 480px; padding-top: 10px; padding-left: 10px; background-repeat: no-repeat;" >AdSense广告码放在这裡</div>

代码解释:
float: right: 让广告整体靠右边显示,你也可以用left,或者不要这句,广告显示在默认位置!
background-image: url(图片网址): 这几是你的背景图片,填入图片相对或绝对地址即可!
height: 70px; width: 480px: 背景图片的高和宽,为像素尺寸!
padding-top: 10px: 广告代码相对与背景图片上面的间距
padding-left: 10px: 广告代码相对于背景图片左边的间距(上面两项可以在以后进行细调,让广告显示在背景图片的合适位置)
background-repeat: no-repeat: 背景不需要重复

这样,你的广告就可以有一个漂亮的背景图了!当然,你也可以把上面的属性定义到Css文件里,在添加广告的地方直接<div>调用即可,如:

#adsense_468 {
width: 480px;
height: 70px;
background-image: url(图片地址);
padding-top: 10px;
padding-left: 10px;
background-repeat: no-repeat;
}

然后我们在广告位调用
<div id=adsense_468>广告代码放在这里</div>

这样就可以了,很简单!

如何实现博客中的二级域名

我说自己做过博客,面试官就总问我博客中的二级域名实现的问题。这个看似与我编程无关的问题,总翻出来,烦死了。今天有时间,我要解决一下。

首先查到了与此相关的技术:泛域名。

泛域名是以*号为主机名的域名,如果做了泛域名解析,并且生效了,那域名前面不管写什么,只要后面是你的域名,那都可以访问到你的网站上去. 就像“*.icech.com”。那么泛域名有什么功用呢?这么说吧,你在DNS 中建立一个名为“*.icech.com”的泛域名,那么所有就像www.icech.com、news.icech.com、love.icech.com 等等格式的域名都不用建立就会自动生效,他们都会指向建立此泛域名时指向的IP 地址。如果你申请了一个域名,通过这样的测试,你就会知道你申请的域名是不是泛域名了。

建立泛域名的大致步骤是:

1、进入DNS,选“正向查找区域”,单击右键,新建“区域”,输入icech.com

2、选中“icech.com”,单击右键,新建“域”,输入“*”

3、选中“*”,新建“主机”,主机名保持为空,输入相应的IP 地址就OK了。

利用程序来完成虚拟域名的解析

假设我们希望设置一个news.icech.com 的域名,当我们在浏览器中输入“news.icech.com”的域名时,他会转向它的真实地址htttp://www.weste.net/index.htm。一般流程肯定就是,它会首先找到DNS 服务器,并且进行域名与IP 地址的转换,这里因为我们已经设置了泛域名,news.icech.com 就会直接指向icech.com 指向的IP,这之间我们不能做什么其他的设置来改变这一流程。那么我们所要做的就是在这个IP 地址所对应主机的默认WEB页面上做文章,让不同的子域名进行URL重定向,转到它们所希望的URL 网址上去。

1、设置icech.com所在主机所默认的WEB服务的默认文档为index.asp、index.php 或者index.cgi等动态页面,而不能是静态的index.htm 页面。

2、通过ASP、PHP或者CGI程序来进行URL的重定向功能

(1)index.php

$domain=$SERVER_NAME; //取得用户所访问的域名全称

$domain=eregi_replace(‘.icech.com’, ”, $domain); //截取域名全称,获取用户所要访问的三级域名,获取所访问的域名全称,可以直接使用PHP系统变量$SERVER_NAME 或 者$HTTP_HOST,注意引用系统内部变量必须大写。事实上PHP 系统内部已经对用户浏览器发送的访问请求头信息进行了全面的分析,并分割成、保存成相应的系统变量,以方便程序使用。第二个语句使用正则替换,查找“.icech.com”并替换成空字符,这样就获得了三级域名。

通常,一个大型的虚拟域名服务都是将用户子域名和其对应URL放在数据库里,这样, 用户可以随时注册新的三级域名和更改域名对应的URL,那么下面的工作就是从数据库中检索出该三级域名对应的URL(数据库检索程序略)。

…… //根据三级域名检索数据库,并得到变量$url,其中存放了该域名对应的URL 地址Header("Location: $url"); //系统重定向,使用户浏览器转向相应URL获得了对应URL 地址之后,我们可以使用PHP的header函数给用户浏览器发送一个重定向信息,让用户转移到相应的URL地址,这样一个完整的虚拟域名服务过程就结束了。

这里我们需要注意的是header函数之前,不能对浏览器有任何输出,否则会产生错误,另外重定向操作中的URL地址应该表述完整,例如:http://www.weste.net/index.htm广告窗口的弹出:常见的虚拟域名服务通常会有弹出广告窗口,是怎么实现的呢?为了能统一控制,必须在重定向用户浏览器之前弹出这个广告框,那么重定向操作就不能简单地使用header函数了,因为这个函数要求使用前不能对浏览器有任何输出。要实现它,我们必须改变方法:

//根据三级域名检索数据库,并得到变量$url,其中存放了该域名对应的URL 地址

echo ‘<script language="javascript">window.open("adv.htm");</script>’;

//输出一段javascript代码,用以打开一个广告窗口,显示广告页adv.htm

echo ‘<meta http-equiv="refresh" content="0;URL=’.$url.’">’;

//使用HTML的meta 语句来实现系统重定向,让用户浏览器转向相应URL。

(2)index.asp

<% name=request.querystring("name") %> ‘这样来获取用户所访问的域名全称
trim(name) ‘用trim 函数来截取域名全称,获取用户所要访问的三级域名与数据库对比,如果与数据库所设置的虚拟域名相同,则直接用response.redirect 转向http://www.weste.net/index.htm页面,否则设定另外转向页面。

还有两种方法可以做到解析无限个二级域名

使用程序进行判断调整
iis服务的主机头留空,新建Default.asp文件,并把新建文件的执行优先级设定为最高(IIS设置属性中的文档,将Default.asp移到最上面)。
Default.asp文件代码:
<%
Dim iURL
iURL = Split(Request.ServerVariables("SERVER_NAME"),".")
If Lcase(iURL(0))="www" Then
‘此处为网站首页地址,请自行选择
Response.Redirect("index.asp")
Else
‘如二级域名所调转地址,请自行更改此处地址
Response.Write( "<frameset><frame src=""**.asp?"&iURL(0)&".index.html""></frameset>")
End If
%>

使用 ISAPI_Rewrite URL处理引擎
先介绍一下ISAPI_Rewrite :
ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎。它非常类似于Apache’s mod_Rewrite,但它是专为IIS设计的。

ISAPI_Rewrite有两个版本:ISAPI_Rewrite Full与ISAPI_Rewrite Lite。

ISAPI_Rewrite Lite是免费版本,但不支持反向代理功能。
ISAPI_Rewrite Full只能下载到30天的试用版本。

解析二级域名就可以用ISAPI_Rewrite一个规则来实现。
如:
test.test.com 映射成 www.test.com/test/
规则如下:
RewriteCond Host: (?!/.|www|ww)(.*).test.com
RewriteRule (.*) http/://www.test.com/$1$2 [I,R]

setcookie函数简介

setcookie

送出 Cookie 资讯到浏览器。

语法: int setcookie(string name, string value, int expire, string path, string domain, int secure);

传回值: 整数

函式种类: 网路系统

 

 
内容说明

本函式会跟着标头 Header 送出一段小资讯字串到浏览器。使用本函式要在送出 HTML 资料前,实际上 cookie 也算标头的一部份。本函式的参数除了第一个 name 之外,都是可以省略的。参数 name 表示 cookie 的名称;value 表示这个 cookie 的值,这个参数为空字串则表示取消浏览器中该 cookie 的资料;expire 表示该 cookie 的有效时间;path 为该 cookie 的相关路径;domain 表示 cookie 的网站;secure 则需在 https 的安全传输时才有效。想得到更多的 cookie 资讯可以到 http://www.netscape.com/newsref/std/cookie_spec.html,由 cookie 原创者 Netscape 所提供的完整资讯。

 

 
使用范例

dante@mpath.com (27-May-1999) 所提供的 setcookie() 及 header() 范例。

<?php
$status 
0;
if (isset(
$myTstCky) && ($myTstCky == "ChocChip")) $status 1;
if (!isset(
$CCHK)) {
  
setcookie("myTstCky""ChocChip");
  
header("Location: $PHP_SELF?CCHK=1");
  exit;
}
?>
<html>
<head><title>Cookie Check</title></head>
<body bgcolor="#FFFFFF" text="#000000">
Cookie Check Status: 
<?php 
printf 
(‘<font color="#%s">%s</font><br>;’
  
$status "00FF00" "FF0000",
  
$status "PASSED!" "FAILED!"); 
?>
</body>
</html>