[不指定 2010/01/25 20:17 | by 逍遥花主 ]
最近在做一个程序,需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错
解决方法很简单,就是在需要转成的编码后加 "//IGNORE" 也就是iconv函数第二个参数后.如下:
以下为引用的内容:
 
引用

iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。

这个iconv()这个函数,在php5中是内置的.谢谢.

列子

<?php
echo $str= '你好,这里是卖咖啡!';
echo '<br />';

echo iconv('GB2312', 'UTF-8', $str);      //将字符串的编码从GB2312转到UTF-8
echo '<br />';

echo iconv_substr($str, 1, 1, 'UTF-8');   //按字符个数截取而非字节         
print_r(iconv_get_encoding());            //得到当前页面编码信息

echo iconv_strlen($str, 'UTF-8');         //得到设定编码的字符串长度

//也有这样用的

   $content = iconv("UTF-8","gbk//TRANSLIT",$content);
?>

『技术文摘』 | Tags: , , | 评论(1) | 引用(0) | 阅读(3273)


[不指定 2009/08/08 13:25 | by 逍遥花主 ]
先建立一个默认主页index.php
然后把A站放在A文件夹下
B站放在B文件夹下
C站放在C文件夹下
 
PHP版本

index.php网页文件如下
  • <?php
  • switch ($_SERVER["HTTP_HOST"])
  • {
  • case "www.a.com":
  • header("location:a/index.php");
  • break;
  • case "www.b.com":
  • header("location:b/index.php");
  • break;
  • case "www.c.com":
  • header("location:c/index.php");
  • break;
  • }
  • ?>


如果用户访问 www.a.com 程序跳转至 空间目录下 a/index.php
如果用户访问 www.b.com 程序跳转至 空间目录下 b/index.php
如果用户访问 www.c.com 程序跳转至 空间目录下 c/index.php


利用一个php文件通过浏览器输入的域名,判定他是要打开那个文件夹里的站点,来实现一个虚拟放置多个站点(缺点例如打开abc.com,在浏览器中看到的是abc.com/b因为站点在b目录下)

其他说明:如果虚拟主机不支持子目录绑定,这是唯一有效的办法




ASP版本

如果只有一个ASP空间,而你又想放置多个多个站点,这些代码可以帮到你

第一个

程序代码

<%
if Request.ServerVariables("SERVER_NAME")="www.dzhai.com" then
response.redirect "williamlong/index.htm"
else
response.redirect "index2.htm"
end if
%>



第二个

程序代码

<%
select case request.servervariables("http_host")
case "www.dzhai.com" '1
Server.Transfer("v3.htm")
case "www.6id.net" '2
Server.Transfer("i.htm")
case "www.write100.com" '3
Server.Transfer("write100.htm")
...... 继续添加 ......
end select
%>




第三个


程序代码

<%
if instr(Request.ServerVariables("SERVER_NAME"),"www.dzhai.com")>0 then
response.redirect "index.asp"
elseif instr(Request.ServerVariables("SERVER_NAME"),"www.6id.net")>0 then
response.redirect "x/index.asp"
elseif instr(Request.ServerVariables("SERVER_NAME"),"www.write100.com")>0 then
response.redirect "index3.asp"
end if
%>




第四个


程序代码

<%
if Request.ServerVariables("SERVER_NAME")="www.dzhai.com" then
response.redirect "index1.asp"
elseif Request.ServerVariables("SERVER_NAME")="www.6id.net" then
response.redirect "index2.asp"
elseif Request.ServerVariables("SERVER_NAME")="www.write100.com" then
response.redirect "index3.asp"
end if
%>



第五个


程序代码

<%
if Request.ServerVariables("SERVER_NAME")="www.dzhai.com" then
Server.Transfer("williamlong.htm")
elseif Request.ServerVariables("SERVER_NAME")="www.6id.net" then
Server.Transfer("moon.htm")
elseif Request.ServerVariables("SERVER_NAME")="www.write100.com" then
Server.Transfer("write100.htm")
else
Server.Transfer("other.htm")
end if
%>


JSP版本

<script>try {if( self.location == "http://玉米一/" ) {
top.location.href = "http://玉米一/目录";
}
else if( self.location == "http://玉米二/" ) {
top.location.href = "http://玉米二/目录";
}
else if( self.location == "http://玉米三/" ) {
top.location.href = "http://玉米三/目录";
}
else if( self.location == "http://玉米四/" ) {
top.location.href = "http://玉米四/目录";
}
else {document.write ("错误的访问地址")}} catch(e) {}</script>



详解:

1:首先,你的空间必须支持ASP,并且这个空间可以绑定下面所用到的两个域名,然后新建一个ASP

的首页文件,这个ASP文件中的代码这么写:
<%if Request.ServerVariables("SERVER_NAME")="XXXX.cn" then '第一个输入的网址
response.redirect "index.html" '将它转发到相应的文件夹
else%>

<%end if%>
<%if Request.ServerVariables("SERVER_NAME")="www.XXXX.cn" then response.redirect

"index.html"
else%>
<%end if%>

<%if Request.ServerVariables("SERVER_NAME")="XXXX.cn" then '第二个输入的网址
response.redirect "soft/index.html" '将它转发到相应的文件


else%>

<%end if%>

<%if Request.ServerVariables("SERVER_NAME")="www.XXXX.cn" thenresponse.redirect

"soft/index.html"
else%>

<%end if%>
『技术文摘』 | Tags:| 评论(0) | 引用(0) | 阅读(2273)


[不指定 2009/06/02 23:16 | by 逍遥花主 ]

DNS Report 所有訊息詳細說明
---------------------------
**官方網站 http://www.dnsreport.com **
DNS Report的分析分為6大部份, 共有51個小項
第一大項: Parent (網域根節點), 有五個小項:

1. Missing Direct Parent check: 檢查看看你有沒有上層網域的設定(這設定不是你的
DNS可以動的,主要是看你申請網名的上層網域的設定).
2. NS Records at parent servers: 檢查Root 伺服器看看有沒有你這個網域
的設定值,通常這個部分都不會錯,不然你的網域就沒人找的到了.
3. Parent nameservers have your nameservers listed: 跟第二個選項一樣,只是第二個選
項會把資料顯示出來.
4. Glue at parent nameservers: 檢查你在Root 伺服器設定的IP跟Hostname實際連線的測試.
5. DNS servers have A records: 檢查你的DNS Server是不是有主機設定的紀錄.

**第二大項: NS (Name Server, 網域伺服器主機),有16小項:**

1. NS records at your nameservers: 檢查你的伺服器上面的NS紀錄,有紀錄的話會列出來.
2. Mismatched glue:檢查你所提供的DNS紀錄是否有錯誤.
3. No NS A records at nameservers: 檢查nameserver上是否有不適當的NS的A紀錄.
4. All nameservers report identical NS records: 檢查所有nameserver與Root 伺服器上面所有NS紀錄的分析.
PS:常見的問題是幾個伺服器的設定值沒有相同,或是沒有NS紀錄(補上就好了)
5. All nameservers respond: 檢查所有的伺服器是不是有回應,只要其中之一有回應就好了.
6. Nameserver name validity : 檢查NS紀錄有沒有問題,大部分不會出錯.
7. Number of nameservers : 檢查NS的個數,一般來說會要求你設定3個,但其實一個就可以了,不放心的話多給他一個Name就好.
8. Lame nameservers: 檢查是否有沒用的nameserver,就是只設定為NS,可是卻沒有放任何實際的資料在上面.
9. Missing (stealth) nameservers: 檢查nameserver的資料是否正確.
10. Missing nameservers 2: 檢查是不是有沒有回應的nameserver資料,如果Root伺服器上面登
記的Name Server有很多個,但有幾個是沒有回應的,就會被列在這兒.
11. No CNAMEs for domain: 檢查你的Domain 是不是使用別名設定.
12. No NSs with CNAMEs: 檢查你的NS是否有使用別名.
13. Nameservers on separate class C''s: 檢查你的Nameserver是不是都在同一個Class C的網路,
不要把所有的DNS放在同一個Class C的網路裡面比較好,免得你網路一掛就什麼都沒了.
14. All NS IPs public: 檢查所有的 NS是否都是真實IP.
15. Nameservers versions: 檢查 Nameserver的版本.
16. Stealth NS record leakage: 檢查你的 DNS Server是否有洩漏SOA的紀錄.

第三大項: SOA (網域紀錄) 共有9小項:
1. SOA record: 檢查是否有SOA紀錄,這個不會有問題的,有問題的話你的網域就不存在了.
2. NS agreement on SOA serial #: 檢查SOA紀錄裡面的版本號碼,各個DNS的回報必須一樣,表示所有的DNS Server資料版本一致,
這也不致出錯, 除非你剛更新紀錄.
3. SOA MNAME Check: 檢查 SOA的主控機器名稱是不是跟Root DNS登記的一
致,如果不一致會警告你(不一致也不會怎樣),通常用Windows Server比較會不一致,
因為他會用WINS抓自己的名字來放MName這個欄位, MName就是DNSD新增一個網域那個對話盒裡面的 "網域主控機器名稱"這個欄位.
4. SOA RNAME Check: 檢查 SOA的命名是不是有一個可以聯絡的Email位址,
但是不要在裡面使用 ''@'' 這個字元喔, 要用 ''.'' 代替 ''@''
5. SOA Serial Number: 檢查 SOA的序號, 通常序號都是用日期來表
示, DNSD這個部分是絕不會出錯的.因為是自動產生的.
6. SOA REFRESH value : 檢查 SOA 更新的反應時間, 通常依照RFC的建議值是
3600到7200秒之間,但實際上,短一點也不會怎樣.
7. SOA RETRY value: 檢查 SOA 重試的反應時間, 通常依照RFC的建議值是
120到7200秒之間,但實際上,短一點也不會怎樣.
8. SOA EXPIRE value: 檢查 SOA 終止回應的反應時間,通常依照RFC的建議值是
1209600到2419200秒之間,但實際上,短一點也不會怎樣.
9. SOA MINIMUM TTL value: 檢查 SOA 最小值的反應時間,通常依照RFC的建議值
是86400秒, 但實際上,短一點也不會怎樣.

第四大項: MX (郵件交換紀錄) 共有10小項:

1. MX Record: 檢查看有沒有MX紀錄,有的話則列出.
2. Invalid characters: 檢查是否有無效的郵件主機的MX紀錄.
3. All MX IPs public: 查看是否所有的MX紀錄都有真實的IP位址.
4. MX records are not CNAMEs: 檢查你的MX紀錄裡面的郵件主機是不是用別名來設
定的.
5. MX A lookups have no CNAMEs: 檢查是不是有MX的A紀錄,而不是用別名來設定的.
6. MX is host name, not IP: 檢查你的MX紀錄是不是完整的FQDN,而不是IP位址,這在DNSD裡面就是一個檢查的要項.
7. Multiple MX records: 檢查你是不是設定了多個MX紀錄,以免第一個郵件主機掛了以後沒人承接你的郵件.
8.Differing MX-A records: 檢查是否有不同的IP有你MX的A紀錄.
9.Duplicate MX records: 檢查是否有不同的IP有你MX紀錄.
10. Reverse DNS entries for MX records: 檢查你的郵件主機的IP紀錄有
沒有設定反查紀錄, 沒有的話請補上, 雖然不會造成什麼影響, 只是有的ISP的郵件若沒有設定反查紀錄會不收你的信.

第五大項: Mail (檢查你的 Mail Server) 有8小項:

1. Connect to mail servers: 檢查看與你的郵件主機連結是否有問題.
2. Mail server host name in greeting: 檢查看你設定的郵件主機的名稱有
沒有在郵件服務的第一個時間內,回應正確的訊息.
3. Acceptance of NULL &lt;&gt; sender: 檢查是否可以接受以尖括號 括起來的Email帳號.
4. Acceptance of postmaster address: 檢查你的Mail Server裡面有沒
有postmaster這個帳號,這是在RFC裡面建議要加的,不過不加也不會怎樣.
5. Acceptance of abuse address: 檢查你的Mail Server裡面有沒
有abuse這個帳號,這是在RFC裡面建議要加的,不過不加也不會怎樣.
6.Acceptance of domain literals: 查看是否有建立帳號管理員帳號(postmaster帳號),
以方便當信件有問題時,可以寄送到帳號管理員(postmaster帳號).
7. Open relay test: 檢查你的Mail Server有沒有代轉信件的功能(Relay).
8. SPF record: 檢查你是否有SPF紀錄,也就是查看你有沒有第三方寄發管理機制的機構,
通常一般公司都不會去申請第三方寄發管理機制.

第六大項: WWW (查詢你的WWW紀錄) 共有3小項:

1. WWW Record: 看看你的紀錄裡面有沒有 www這個名稱的紀錄.
2. All WWW IPs public: 查看你是否有設定WWW的紀錄.
3. CNAME Lookup : 看看你的WWW名稱是不是用別名, 因為別名會多查一次, 多佔一些些的頻寬,建議用A紀錄來做.


『技术文摘』 | Tags: , | 评论(0) | 引用(0) | 阅读(2418)


[不指定 2009/05/29 18:50 | by 逍遥花主 ]
PS:最近有QQ上的朋友问如何让自己域名看起来是自己的服务器解析的(实际上用别人的提供的DNS服务器),现在我来做个教程,说下详细步骤及必要的条件。

一、必须要有支持NS记录的DNS解析服务器,最好是能更改默认的域名NS授权的DNS服务器。这样的话在NSLOOKUP的NS查询中就不会显示默认NS记录,看起来更像真的。国内的新网互联(dns.com.cn)支持这个功能,国外的freedns.ws支持这个功能,我亲自己测试过。本文用freedns.ws做示范。
注意:这个功能是很多DNS服务器的收费项目。所提供这个功能的免费DNS服务器很少。

二、您必须有一个属于您自已的域名。比如:abc.com。没有域名的必须先注册一个域名。

三、在国际域名中心注册一个DNS域名服务器,以使您的DNS服务器在全球有效。

步骤:
1、在域名注册商(如新网,新网互联)的域名控制面板里一个"注册本域名下的DNS"的功能。
2、点击进去添加至少两个DNS,如ns1.abc.com及ns2.abc.com,IP地址填写你所用的DNS服务器的IP地址。freedns.ws有两个IP:91.207.4.10,69.31.84.58。
3、在 http://www.internic.com/whois.html页面填入您的DNS域名,如ns1.abc.com,选择"Nameserver",点submit看看您注册的DNS有没有生效。(一般是基本上注册后就生效了,因为各地的DNS刷新速度不一样,一般48小时后全球生效)
4、去freedns.ws添加你的域名abc.com,然后把NS记录里的ns1.freedns.ws等改为ns1.abc.com等你自己注册的DNS。
5、在freedns.ws的A记录里,加上ns1.abc.com等的A记录指向。这一步可以不要,但不加的话解析的速度会有所减慢。
6、在你的域名注册商那里把DNS服务器改为ns1.abc.com等你自己注册的DNS服务器。

至此你就可能用看起来像是自己的DNS服务器解析自己的域名了。不过所有的记录还是得登陆freedns.ws添加和更改。(其实这没什么用,只是满足下自己的虚荣心罢了!)
另外要注意的是:当freedns.ws的ns1.freedns.ws等服务器的IP变化了的时候,请你及时更改你注册的ns1.abc.com的IP地址,如果加了ns1.abc.com加了A记录的话,也必须更新。所以呢最好找个IP比较固定的DNS服务商,不然会很累的,域名解析也不稳定。

演示: planetidc.com 这个域名是我用新网互联(dns.com.cn)测试这个功能用的,现在已经生效。可以到 http://dns.xaoyo.net 查询效果。

  
『技术文摘』 | Tags: , | 评论(3) | 引用(0) | 阅读(43524)


[不指定 2008/11/25 00:22 | by forest ]

 如果大家使用的是windows2k 或xp那么教大家一招金蝉脱窍 —— 而且只需要这一招克就能死所有病毒!!
如果你是新装的系统(或者是你能确认你的系统当前是无毒的),那就再好不过了,现在就立即就打开:“开始→程序→管理工具→计算机管理→本地用户和组→用户” 吧!
首先就是把超级管理员密码更改成十位数以上,然后再建立一个用户,把它的密码也设置成十位以上并且提升为超级管理员。这样做的目的是为了双保险:如果你忘记了其中一个密码,还有使用另一个超管密码登陆来挽回的余地,免得你被拒绝于系统之外;再者就是网上的黑客无法再通过猜测你系统超管密码的方式远程获得你系统的控制权而进行破坏。接着再添加两个用户,比如用户名分别为:user1、user2;并且指定他们属于user组,好了,准备工作到这里就全部完成了,以后你除了必要的维护计算机外就不要使用超级管理员和user2登陆了。只使用user1登陆就可以了。
登陆之后上网的时候找到ie,并为它建立一个快捷方式到桌面上,右键单击快捷方式,选择“以其他用户方式运行”点确定!要上网的时候就点这个快捷方式,它会跟你要用户名和密码这时候你就输入user2的用户名和密码!!!好了,现在你可以使用这个打开的窗口去上网了,可以随你便去放心的浏览任何恶毒的、恶意的、网站跟网页,而不必再担心中招了!因为你当前的系统活动的用户时user1。而user2是不活动的用户,我们使用这个不活动的用户去上网时,无论多聪明的网站,通过ie得到的信息都将让它都将以为这个user2就是你当前活动的用户,如果它要在你浏览时用恶意代码对你的系统搞搞破坏的话根本就时行不通的,即使能行通,那么被修改掉的仅仅时use2的一个配置文件罢了,而很多恶意代码和病毒试图通过user2进行的破坏活动却都将失败,因为user2根本就没运行,怎么能取得系统的操作权呢??既然取不得,也就对你无可奈何了。而他们更不可能跨越用户来操作,因为微软得配置本来就是各各用户之间是独立的,就象别人不可能跑到我家占据我睡觉用的床一样,它们无法占据user1的位置!所以你只要能保证总是以这个user2用户做代理来上网(但却不要使用user2来登陆系统,因为如果那样的话,如果user2以前中过什么网页病毒,那么在user2登陆的同时,他们极有可能被激活!),那么无论你中多少网页病毒,全部都将是无法运行或被你当前的user1用户加载的,所以你当前的系统将永远无毒!

不过总有疏忽的时候,一个不小心中毒了怎么办??
不用担心,现在我们就可以来尽情的表演脱壳的技术了!
开始金蝉脱壳:
重新启动计算机,使用超级管理员登陆——进入系统后什么程序都不要运行
你会惊奇的发现在的系统竟然表现的完全无毒!!,那就再好不过了,现在就立即就打开:
“开始→程序→管理工具→计算机管理→本地用户和组→用户” 吧!
把里面的user1和user2两个用户权删掉吧,你只需要这么轻轻的一删就可以了,那么以前随着这两个用户而存在的病毒也就跟随着这两个用户的消失而一起去长眠了——(好象是陪葬,呵呵!)。这么做过之后我保证你的win2k就象新装的一个样,任何系统文件和系统进程里都完全是没有病毒的!
好!现在再重复开始的步骤从新建立user1和user2两个用户,让他们复活吧。他们复活是复活了,但是曾跟随了他们的病毒却是没这机会了,因为win2k重新建立用户的时候会重新分配给他们全新的配置,而这个配置是全新的也是不可能包含病毒的!!!建立完成之后立即注销超级管理员,转如使用user1登陆,继续你象做的事吧,你会发现你的系统如同全新了!以上方法可以周而复始的用,再加上经常的去打微软的补丁,几乎可以永远保证你的操作系统是无毒状态!只要你能遵循以下几条规辙:
一、任何时间都不以超级管理员的身份登陆系统——除非你要进行系统级更新和维护、需要使用超级管理员身份的时候或是你需要添加和删除用户的时候。
二、必须使用超级管理员登陆的时候,保证不使用和运行任何除了操作系统自带的工具和程序之外的任何东西,而且所有维护都只通过开始菜单里的选项来完成,甚至连使用资源管理器去浏览硬盘都不! 只做做用户和系统的管理和维护就立即退出,而决不多做逗留!(这也是微软的要求,微软最了解自己的东东,他的建议是正确的。浏览硬盘的事,在其他用户身份下你有大把的机会,在超级管理员的身份下还是不要了!!这应该事能完全作到的)。
上面的都作到了,那么排除了硬件和误操作原因、、病毒跟系统瘫痪都将与你无缘了.

『技术文摘』 | Tags:| 评论(0) | 引用(0) | 阅读(1423)


分页: 6/11 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]