DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL 文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。DLL文件一般被存放在C:WindowsSystem目录下。

DLL文件由于病毒或者安装某些程序的原因,可能造成破坏或者丢失。这里icech搜集了一些下载DLL文件的网站网址,都是很不错的网站,您需要的DLL文件应该都可以在这些网站中查找并下载到的!

麦地
http://www.mydll.com.cn/
Download and restore missing .dll files!

文件库
http://www.dll1.cn/
系统文件库

找DLL下载站
http://www.zhaodll.com/
针对操作系统所需要的常用dll文件下载

库文件信息
http://www.wjxxk.com/

DLL-files.com
http://www.dll-files.com/
Download all your missing dll-files. 一个国外的dll下载网站,dll文件的版本信息非常详细。

DLL World
http://dll.yaroslavl.ru/
To memory of previous closed DLL projects it is devoted.

From: www.weste.net

这两天碰到两个Linux下面需要添加静态路由,研究了一下。

假如要添加一条路由,让192.168.200.0/24的数据包走192.168.0.1,那么就需要这样改:

要修改/etc/sysconfig/network-scripts/route-eth0,在里面添加

GATEWAY0=192.168.0.1
NETMASK0=255.255.255.0
ADDRESS0=192.168.200.0

然后需要重启Network Service以生效。


在命令提示符下设定IP的话用下面这条命令:

ifconfig ethx <IP_address>

 

 

自从上礼拜开始,我的Emule就连不上服务器了。就算连上了也是LowID,而且过不了多长时间就会被踢下来….

研究了好长时间,终于在今天解决了,呵呵。

其实解决的方法很简单,更换端口。Emule的默认端口是4661/TCP,和4672/UDP,只要把这两个端口改了,再重启Emule就可以了。比如改成5661/TCP,和5672/UDP。

估计是ISP在路由上做了限制关闭Emule…唉…

这几天在猛刷手机,把手机(DOPOD 575)的操作系统从WM2003刷到WM5,又从WM5刷到WM6、WM6.1。试了半天,结果发现还是WM5最好用。打算自己定制一个WM5的ROM来用,呵呵。

手机上网需要设置各种麻烦的上网参数,否则什么QQ了,UCWEB~ 访问都有问题。原来QQ都可以上的,刷了以后QQ就上不了了。原来的上网参数也记不清是怎么设的了。只有干脆找了个移动定制的ROM来刷一次。把上网参数抄下来,以后无论刷什么ROM都可以自己设置上网参数了。

capture.jpg
 capture1.jpg


拨号连接:

1. 拨号连接互联网
连接到: Internet
电话号码: 17201
用户名:172
密码:****************
域:

2. 移动梦网(拨号)
连接到: WAP网络
电话号码:17266
用户名:wap
密码:****************
域:

代理服务器连接:

1. WAP上网参数
连接方:WAP网络
连接到:安全WAP网络
代理服务器(名称:端口):10.0.0.172:9201
类型:WAP

GPRS连接

1. GPRS连接互联网
连接到: Internet
访问点:cmnet
用户名:
密码:
主DNS: 0.0.0.0
辅助DNS: 0.0.0.0
IP地址:

2. 移动梦网(GPRS)
连接到:WAP网络
访问点:cmwap
用户名:
密码:
主DNS:0.0.0.0
辅助DNS: 0.0.0.0
IP地址:

3. 移动梦网(MMS)
连接到:MMS网络
访问点:cmwap
用户名:
密码:
主DNS:0.0.0.0
辅助DNS:0.0.0.0
IP地址:

 

  你知道netsh.exe能为你做些什么吗?如果不知道的话就请跟我一起往下看吧。

  首先,它可以显示你TCP/IP协议的相关设置。在命令提示窗口(CMD.EXE)里输入下列命令:
netsh interface ip show config

  你还可以用它来更改计算机的IP地址或者配置TCP/IP的其它相关属性。例如,你想为计算机的“本地连接”指定一个静态的IP地址:192.168.0.100,设置其子网掩码?55.255.255.0,并指定默认网关为192.168.0.1,你只需要在命令提示窗口里输入下列命令就可以了:
netsh interface ip set address name="Local Area Connection" static 192.168.0.100 255.255.255.0 192.168.0.1 1

  (注意:这是一条完整的命令,输入的时候请不要换行。)

  如果你有一台笔记本电脑,而且你需要在两个以上不同的地方接入网络(并且每个网络都需要使用静态IP地址),那么你也可以使用netsh.exe来快速地切换TCP/IP设置,以适应不同网络的需要。ntesh.exe可以把不同的TCP/IP设置导出成不同的配置文件,然后在需要的时候导入配置文件来更改相应的设置。

  例如,现在你的笔记本接入了网络1,并且已经做好了相应的网络设置。这时你可以在命令提示窗口输入:
netsh -c interface dump > c:location1.txt

  通过这条命令把相应的TCP/IP设置导出至c:下文件名为location1.txt的文本文件。以此类推,你可以把不同网络环境的设置导出到不同的配置文件中。在需要接入不同的网络中时,你只需要使用下面这条命令就可以了:
netsh -f c:location1.txt(或者:netsh -f c:location2.txt)

  除此之外,你还可以通过netsh.exe来配置网络适配器,让它从DHCP服务器自动获得IP地址。命令如下:
netsh interface ip set address "Local Area Connection" dhcp

  还可以进行WINS配置:
netsh interface ip set wins "Local Area Connection" static 192.168.0.200

  当然,只要你想,你还可以通过netsh.exe使网络适配器动态获得DNS设置:
netsh interface ip set dns "Local Area Connection" dhcp

  现在你知道了吧,netsh.exe是一个很有用的自定义TCP/IP设置的工具.

 

lifehacker.com 最近从200个提名中评选出最好的5个在线文件共享服务,这些容量大,速度快,容易使用的在线服务可以帮助你和朋友一起分享音乐,也可以帮助你和同事共享某个重要文档。

Box.net
提供1G免费空间的 Box.net  以其简洁的界面以及丰富的功能著称。用户喜欢它的协同工具与开放格式,并因此享受直接在桌面安装 Web 空间的乐趣,该网站支持Web服务以及RSS feeds。Box.net 提供直接文件链接地址,你不必登陆就可以直接使用这个地址下载,Box.net 最大缺点是,免费用户的单个文件尺寸上限是10M。

Drop.io
Drop.io 简洁的页面让人印象深刻。不必注册,内置不同格式文档的预览工具,该网站最近新增免费传真收发,录音等功能,免费帐户的容量上限是100M。

MediaFire
人们喜欢无限空间,MediaFire 就是。服务是免费的,空间无限制,不必注册,但单个文件不能超过100M。

Windows Live SkyDrive
Windows Live SkyDrive 提供5GB免费空间,这个来自微软的服务一经上线立刻备受欢迎。SkyDrive 提供基于文件夹的共享服务,你可以将文件放在个人,共享,公开文件夹中。SkyDrive 使用 Windows Live 帐户登陆,单个文件上限是50M。

FolderShare
跨平台的 FolderShare 更象一个文件同步工具,你可以直接在桌面上和朋友共享文档,在桌面建立一个共享文件夹,该服务可以直接将这个文件夹中的文件同步到你的朋友的桌面,你所做的只是将需要共享的文件拖放到这个共享文件夹。

本文国际来源:http://lifehacker.com/388284/best-online-file-sharing-services
中文翻译:COMSHARP CMS

Godaddy虚拟主机提供了AspUpload组件,但是初用Godaddy虚拟主机的朋友在使用中往往会遇到一些问题。

我的经历:我将AspUpload组件自己提供的代码上传到空间后发现报错,第一个想法就是目录权限的问题。

1、检查目录权限

首先进入Godaddy虚拟主机中File Manager。选择要上传的目录,点击按钮“Permissions”,去掉Inherit,选中Read、Write,也可以同时选中Reset all children to inherit。点击“OK”。

如果你发现在File Manager中没有Permissions,那么可能你安装了FrontPage Extensions。就要卸载掉它。
进入FrontPage Extensions后,选择Uninstall FrontPage Extensions,输入邮箱地址,点“Continue”按钮,然后一步步按照提示就可以完成反安装FrontPage Extensions了,然后再回到File Manager进行目录的权限管理。

2、修改AspUpload组件提供的代码

AspUpload提供的默认代码是

<%
Set Upload = Server.CreateObject("Persits.Upload")
Upload.Save("c:upload")
%>

我们在国内的主机中常常会使用Upload.Save Server.MapPath(path),但是在Godaddy虚拟主机中是不能使用Upload.Save Server.MapPath(path)的。只允许使用Upload.SaveVirtual,如果你要上传到upload目录,那么就将程序修改为:

<%
Set Upload = Server.CreateObject("Persits.Upload")
‘Upload.Save "c:upload"
Upload.SaveVirtual("upload")
%>

这样再试试,在Godaddy虚拟主机中使用AspUpload组件就没问题了!

经常听说的ASP上传漏洞,即是将一些木马文件修改后缀名(修改为图像文件后缀),进行上传。
注意:经过西部e网icech的测试,CheckFileType并不能判断出伪装成GIF89a的文件。

针对此情况使用下列函数进行辨别:

<%
‘******************************************************************
‘CheckFileType 函数用来检查文件是否为图片文件
‘参数filename是本地文件的路径
‘如果是文件jpeg,gif,bmp,png图片中的一种,函数返回true,否则返回false
‘******************************************************************

const adTypeBinary=1

dim jpg(1):jpg(0)=CByte(&HFF):jpg(1)=CByte(&HD8)
dim bmp(1):bmp(0)=CByte(&H42):bmp(1)=CByte(&H4D)
dim png(3):png(0)=CByte(&H89):png(1)=CByte(&H50):png(2)=CByte(&H4E):png(3)=CByte(&H47)
dim gif(5):gif(0)=CByte(&H47):gif(1)=CByte(&H49):gif(2)=CByte(&H46):gif(3)=CByte(&H39):gif(4)=CByte(&H38):gif(5)=CByte(&H61)

function CheckFileType(filename)
on error resume next
CheckFileType=false
filename=LCase(filename)
dim fstream,fileExt,stamp,i
fileExt=mid(filename,InStrRev(filename,".")+1)
set fstream=Server.createobject("ADODB.Stream")
fstream.Open
fstream.Type=adTypeBinary
fstream.LoadFromFile filename
fstream.position=0
select case fileExt
case "jpg","jpeg"
stamp=fstream.read(2)
for i=0 to 1
if ascB(MidB(stamp,i+1,1))=jpg(i) then CheckFileType=true else CheckFileType=false
next
case "gif"
stamp=fstream.read(6)
for i=0 to 5
if ascB(MidB(stamp,i+1,1))=gif(i) then CheckFileType=true else CheckFileType=false
next
case "png"
stamp=fstream.read(4)
for i=0 to 3
if ascB(MidB(stamp,i+1,1))=png(i) then CheckFileType=true else CheckFileType=false
next
case "bmp"
stamp=fstream.read(2)
for i=0 to 1
if ascB(MidB(stamp,i+1,1))=bmp(i) then CheckFileType=true else CheckFileType=false
next
end select
fstream.Close
set fseteam=nothing
if err.number<>0 then CheckFileType=false
end function
%>

那么在应用的时候
CheckFileType(server.mappath("cnbruce.jpg"))
或者
CheckFileType("F:/web/164/images/cnbruce.jpg"))

反正即是检测验证本地物理地址的图像文件类型,返回 true 或 false值

所以这个情况应用在图像上传中,目前的办法是先允许该“伪图像”文件的上传,接着使用以上的自定义函数判断该文件是否符合图像的规范,若是木马伪装的图像文件则FSO删除之,比如:

file.SaveAs Server.mappath(filename) ‘保存文件
If not CheckFileType(Server.mappath(filename)) then
    response.write "错误的图像格式"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ficn = fso.GetFile(Server.mappath(filename))
    ficn.delete
    set ficn=nothing
    set fso=nothing
    response.end
end if

ASP上传漏洞还利用""对filepath进行手脚操作
http://www.cnbruce.com/blog/showlog.asp?cat_id=32&log_id=635

针对这样的情况可使用如下函数

function TrueStr(fileTrue)
str_len=len(fileTrue)
pos=Instr(fileTrue,chr(0))
if pos=0 or pos=str_len then
TrueStr=true
else
TrueStr=false
end if
end function

接着就可判断后再做文件的上传

if TrueStr(filename)=false then
    response.write "非法文件"
    response.end
end if

file.SaveAs Server.mappath(filename)

转自:www.weste.net

YouTube发展迅速,每天超过1亿的视频点击量,但只有很少人在维护站点和确保伸缩性。

平台
Apache
Python
Linux(SuSe)
MySQL
psyco,一个动态的Python到C的编译器
lighttpd代替Apache做视频查看

状态
支持每天超过1亿的视频点击量
成立于2005年2月
于2006年3月达到每天3千万的视频点击量
于2006年7月达到每天1亿的视频点击量
2个系统管理员,2个伸缩性软件架构师
2个软件开发工程师,2个网络工程师,1个DBA

处理飞速增长的流量

代码
while (true)     
 {     
   identify_and_fix_bottlenecks();     
  drink();     
   sleep();     
   notice_new_bottleneck();     
 }  

每天运行该循环多次

Web服务器
1,NetScaler用于负载均衡和静态内容缓存
2,使用mod_fast_cgi运行Apache
3,使用一个Python应用服务器来处理请求的路由
4,应用服务器与多个数据库和其他信息源交互来获取数据和格式化html页面
5,一般可以通过添加更多的机器来在Web层提高伸缩性
6,Python的Web层代码通常不是性能瓶颈,大部分时间阻塞在RPC
7,Python允许快速而灵活的开发和部署
8,通常每个页面服务少于100毫秒的时间
9,使用psyco(一个类似于JIT编译器的动态的Python到C的编译器)来优化内部循环
10,对于像加密等密集型CPU活动,使用C扩展
11,对于一些开销昂贵的块使用预先生成并缓存的html
12,数据库里使用行级缓存
13,缓存完整的Python对象
14,有些数据被计算出来并发送给各个程序,所以这些值缓存在本地内存中。这是个使用不当的策略。应用服务器里最快的缓存将预先计算的值发送给所有服务器也花不了多少时间。只需弄一个代理来监听更改,预计算,然后发送。

视频服务
1,花费包括带宽,硬件和能源消耗
2,每个视频由一个迷你集群来host,每个视频被超过一台机器持有
3,使用一个集群意味着:
-更多的硬盘来持有内容意味着更快的速度
-failover。如果一台机器出故障了,另外的机器可以继续服务
-在线备份
4,使用lighttpd作为Web服务器来提供视频服务:
-Apache开销太大
-使用epoll来等待多个fds
-从单进程配置转变为多进程配置来处理更多的连接
5,大部分流行的内容移到CDN:
-CDN在多个地方备份内容,这样内容离用户更近的机会就会更高
-CDN机器经常内存不足,因为内容太流行以致很少有内容进出内存的颠簸
6,不太流行的内容(每天1-20浏览次数)在许多colo站点使用YouTube服务器
-长尾效应。一个视频可以有多个播放,但是许多视频正在播放。随机硬盘块被访问
-在这种情况下缓存不会很好,所以花钱在更多的缓存上可能没太大意义。
-调节RAID控制并注意其他低级问题
-调节每台机器上的内存,不要太多也不要太少

视频服务关键点
1,保持简单和廉价
2,保持简单网络路径,在内容和用户间不要有太多设备
3,使用常用硬件,昂贵的硬件很难找到帮助文档
4,使用简单而常见的工具,使用构建在Linux里或之上的大部分工具
5,很好的处理随机查找(SATA,tweaks)

缩略图服务
1,做到高效令人惊奇的难
2,每个视频大概4张缩略图,所以缩略图比视频多很多
3,缩略图仅仅host在几个机器上
4,持有一些小东西所遇到的问题:
-OS级别的大量的硬盘查找和inode和页面缓存问题
-单目录文件限制,特别是Ext3,后来移到多分层的结构。内核2.6的最近改进可能让Ext3允许大目录,但在一个文件系统里存储大量文件不是个好主意
-每秒大量的请求,因为Web页面可能在页面上显示60个缩略图
-在这种高负载下Apache表现的非常糟糕
-在Apache前端使用squid,这种方式工作了一段时间,但是由于负载继续增加而以失败告终。它让每秒300个请求变为20个
-尝试使用lighttpd但是由于使用单线程它陷于困境。遇到多进程的问题,因为它们各自保持自己单独的缓存
-如此多的图片以致一台新机器只能接管24小时
-重启机器需要6-10小时来缓存
5,为了解决所有这些问题YouTube开始使用Google的BigTable,一个分布式数据存储:
-避免小文件问题,因为它将文件收集到一起
-快,错误容忍
-更低的延迟,因为它使用分布式多级缓存,该缓存与多个不同collocation站点工作
-更多信息参考Google Architecture,GoogleTalk Architecture和BigTable

数据库
1,早期
-使用MySQL来存储元数据,如用户,tags和描述
-使用一整个10硬盘的RAID 10来存储数据
-依赖于信用卡所以YouTube租用硬件
-YouTube经过一个常见的革命:单服务器,然后单master和多read slaves,然后数据库分区,然后sharding方式
-痛苦与备份延迟。master数据库是多线程的并且运行在一个大机器上所以它可以处理许多工作,slaves是单线程的并且通常运行在小一些的服务器上并且备份是异步的,所以slaves会远远落后于master
-更新引起缓存失效,硬盘的慢I/O导致慢备份
-使用备份架构需要花费大量的money来获得增加的写性能
-YouTube的一个解决方案是通过把数据分成两个集群来将传输分出优先次序:一个视频查看池和一个一般的集群
2,后期
-数据库分区
-分成shards,不同的用户指定到不同的shards
-扩散读写
-更好的缓存位置意味着更少的IO
-导致硬件减少30%
-备份延迟降低到0
-现在可以任意提升数据库的伸缩性

数据中心策略
1,依赖于信用卡,所以最初只能使用受管主机提供商
2,受管主机提供商不能提供伸缩性,不能控制硬件或使用良好的网络协议
3,YouTube改为使用colocation arrangement。现在YouTube可以自定义所有东西并且协定自己的契约
4,使用5到6个数据中心加CDN
5,视频来自任意的数据中心,不是最近的匹配或其他什么。如果一个视频足够流行则移到CDN
6,依赖于视频带宽而不是真正的延迟。可以来自任何colo
7,图片延迟很严重,特别是当一个页面有60张图片时
8,使用BigTable将图片备份到不同的数据中心,代码查看谁是最近的

学到的东西
1,Stall for time。创造性和风险性的技巧让你在短期内解决问题而同时你会发现长期的解决方案
2,Proioritize。找出你的服务中核心的东西并对你的资源分出优先级别
3,Pick your battles。别怕将你的核心服务分出去。YouTube使用CDN来分布它们最流行的内容。创建自己的网络将花费太多时间和太多money
4,Keep it simple!简单允许你更快的重新架构来回应问题
5,Shard。Sharding帮助隔离存储,CPU,内存和IO,不仅仅是获得更多的写性能
6,Constant iteration on bottlenecks:
-软件:DB,缓存
-OS:硬盘I/O
-硬件:内存,RAID
7,You succeed as a team。拥有一个跨越条律的了解整个系统并知道系统内部是什么样的团队,如安装打印机,安装机器,安装网络等等的人。With a good team all things are possible。