请教一下用ASP如何得到服务器相关信息
操作系统:
<%=RequestServerVariables("OS")%>
服务器名称:
<%=RequestServerVariables("SERVER_NAME")%>
服务器IP:
<%=RequestServerVariables("LOCAL_ADDR")%>
CPU数量:
<%=RequestServerVariables("NUMBER_OF_PROCESSORS")%>个
服务端口:
<%=RequestServerVariables("SERVER_PORT")%>
Webserver及版本:
<%=RequestServerVariables("SERVER_SOFTWARE")%>
脚本解释引擎:
<%=ScriptEngine & "/"& ScriptEngineMajorVersion &""&ScriptEngineMinorVersion&""& ScriptEngineBuildVersion %>
服务协议及版本:
<%=RequestServerVariables("SERVER_PROTOCOL")%>
脚本超时时间:
<%=ServerScriptTimeout%>秒
网站物理路径:
<%=requestServerVariables("APPL_PHYSICAL_PATH")%>
<%
Dim BrowseMsg,BrowseVersion,SystemVersion
BrowseMsg=RequestServerVariables("HTTP_USER_AGENT")
'+++++++++++一个基本判别操作系统的函数+++++++++++
Function SystemCheck()
if inStr(BrowseMsg,"Windows 98") then
SystemCheck="Windows 98"
else if inStr(BrowseMsg,"Windows NT 40") then
SystemCheck="Windows NT 40"
else if inStr(BrowseMsg,"Windows NT 50") then
SystemCheck="Windows NT 2000"
else
SystemCheck="未知类型"
end if
end if
end if
end Function
'由于时间的原因我没有写判定win95和windows xp的语句,感兴趣的网友可以
'自行添加:)
'+++++++++++结束+++++++++++
if inStr(BrowseMsg,"MSIE") then
SystemVersion=CInt(Mid(BrowseMsg,inStr(BrowseMsg,"MSIE")+5,1))
responsewrite "您的浏览器的版本是 IE"&BrowseVersion&"<BR>"
responsewrite "您的操作系统是 "&SystemCheck()
end if
%>
Apache、IIS 这是两服务器软件 ,服务器类型可以通过ping 服务iP 返回的TTL来判断
UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255
Compaq Tru64 50 ICMP 回显应答的 TTL 字段值为 64
微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128
微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32
TTL返回值 可以通过注册表修改
1、根据体系结构不同,服务器可以分成两大重要的类别:IA架构服务器和RISC架构服务器。服务器
这种分类标准的主要依据是两种服务器采用的处理器体系结构不同。RISC架构服务器采用的CPU是所谓的精简指令集的处理器,精简指令集CPU的主要特点是采用定长指令,使用流水线执行指令,这样一个指令的处理可以分成几个阶段,处理器设置不同的处理单元执行指令的不同阶段,比如指令处理如果分成三个阶段,当第N条指令处在第三个处理阶段时,第N+1条指令将处在第二个处理阶段,第N+2条指令将处在第一个处理阶段。这种指令的流水线处理方式使得CPU有并行处理指令的能力,这使处理器能够在单位时间内处理更多的指令。IA架构的服务器采用的是CISC体系结构,即复杂指令集体系结构,这种体系结构的特点是指令较长,指令的功能较强,单个指令可执行的功能较多,这样我们可以通过增加运算单元,使一个指令所执行的功能能够同时并行执行来提高运算能力。长时间以来两种体系结构一直在相互竞争中成长,都取得了快速的发展。IA架构的服务器采用了开放体系结构,因而有了大量的硬件和软件的支持者,在近年有了长足的发展。
2、根据服务器的规模不同可以将服务器分成工作组服务器、部门服务器和企业服务器。
这种分类方法是一种相对比较老的分类方法,主要是根据服务器应用环境的规模来分类,比如一个十台客户机左右的计算机网络环境适合使用工作组服务器,这种服务器往往采用1个处理器,较小的硬盘容量和不是很强的网络吞吐能力;一个几十台客户机的计算机网络适用部门级服务器,部门级服务器相对能力要强,往往采用2颗处理器,较大的内存和磁盘容量,磁盘I/O和网络I/O的能力也较强,这样这台服务器才能有足够的处理能力来受理客户端提出的服务需求;而企业级的服务器往往处于百台客户机以上的网络环境,为了承担对大量服务请求的响应,这种服务器往往采用4颗处理器、有大量的硬盘和内存,并且能够进一步扩展以满足更高的需求,同时由于要应付大量的访问,所以,这种服务器的网络速度和磁盘速度也应该很高。为达到这个要求,往往要采用多个网卡和多个硬盘并行处理。所有上述描述是很不精确的,存在很多特殊情况的,比如一个网络的客户机可能很多,但对服务器的访问可能很少,就没有必要要一台功能超强的企业级服务器,由于这些因素的存在,使得这种服务器的分类方法更倾向于定性,而不是定量,也就是说从小组级到部门级到企业级,服务器的性能是在逐渐加强的,其他各种特性也是在逐渐加强的。
3、根据服务器的功能不同我们可以把服务器分成很多类别
如文件/打印服务器,这是最早的服务器种类,它可以执行文件存储和打印机资源共享的服务,至今,这种服务器还在办公环境里得到了广泛应用。数据库服务器,运行一个数据库系统,用于存储和操纵数据,向连网用户提供数据查询、修改服务,这种服务器也是一种广泛应用在商业系统中的服务器。WEB服务器、E-MAIL服务器、NEWS服务器、PROXY服务器,这些服务器都是INTERNET应用的典型、他们能完成主页的存储和传送、电子邮件服务、新闻组服务等。所有上面讲的这些服务器,都是不仅仅是一个硬件系统,他们往往是通过硬件和软件的结合来实现他们特定的功能。
如需了解更多,请访问蛙云官网wayuncn
专业领域十二载,倾情奉献
一次购买,终生陪伴
页面放个panel
foreach(Control ctrol in thispanel1Controls )
{
if ( ctrolGetType()ToString() == "SystemWindowsFormsButton" ) )
{
//your code
}
if ( ctrolGetType()ToString() == "XXXXX" ) )
{
//your code
}
}
package comrogerqueryutil;
import orgapachelog4jLogger;
/
@ 服务器类型探测
@Date 2011/04/13
/
public class ServerUtil {
public static final String GERONIMO_CLASS = "/org/apache/geronimo/system/main/Daemonclass";
public static final String JBOSS_CLASS = "/org/jboss/Mainclass";
public static final String JETTY_CLASS = "/org/mortbay/jetty/Serverclass";
public static final String JONAS_CLASS = "/org/objectweb/jonas/server/Serverclass";
public static final String OC4J_CLASS = "/oracle/jsp/oc4jutil/Oc4jUtilclass";
public static final String ORION_CLASS = "/com/evermind/server/ApplicationServerclass";
public static final String PRAMATI_CLASS = "/com/pramati/Serverclass";
public static final String RESIN_CLASS = "/com/caucho/server/resin/Resinclass";
public static final String REXIP_CLASS = "/com/tcc/Mainclass";
public static final String SUN7_CLASS = "/com/iplanet/ias/tools/cli/IasAdminMainclass";
public static final String SUN8_CLASS = "/com/sun/enterprise/cli/framework/CLIMainclass";
public static final String TOMCAT_CLASS = "/org/apache/catalina/startup/Bootstrapclass";
public static final String WEBLOGIC_CLASS = "/weblogic/Serverclass";
public static final String WEBSPHERE_CLASS = "/com/ibm/websphere/product/VersionInfoclass";
public static String getServerId() {
ServerUtil sd = _instance;
if (sd_serverId == null) {
if (ServerUtilisGeronimo()) {
sd_serverId = "geronimo";
} else if (ServerUtilisJBoss()) {
sd_serverId = "jboss";
} else if (ServerUtilisJOnAS()) {
sd_serverId = "jonas";
} else if (ServerUtilisOC4J()) {
sd_serverId = "oc4j";
} else if (ServerUtilisOrion()) {
sd_serverId = "orion";
} else if (ServerUtilisResin()) {
sd_serverId = "resin";
} else if (ServerUtilisWebLogic()) {
sd_serverId = "weblogic";
} else if (ServerUtilisWebSphere()) {
sd_serverId = "websphere";
}
if (ServerUtilisJetty()) {
if (sd_serverId == null) {
sd_serverId = "jetty";
} else {
sd_serverId += "-jetty";
}
} else if (ServerUtilisTomcat()) {
if (sd_serverId == null) {
sd_serverId = "tomcat";
} else {
sd_serverId += "-tomcat";
}
}
if (_logisInfoEnabled()) {
_loginfo("Detected server " + sd_serverId);
}
if (sd_serverId == null) {
throw new RuntimeException("Server is not supported");
}
}
return sd_serverId;
}
public static boolean isGeronimo() {
ServerUtil sd = _instance;
if (sd_geronimo == null) {
Class c = sdgetClass();
if (cgetResource(GERONIMO_CLASS) != null) {
sd_geronimo = BooleanTRUE;
} else {
sd_geronimo = BooleanFALSE;
}
}
return sd_geronimobooleanValue();
}
public static boolean isJBoss() {
ServerUtil sd = _instance;
if (sd_jBoss == null) {
Class c = sdgetClass();
if (cgetResource(JBOSS_CLASS) != null) {
sd_jBoss = BooleanTRUE;
} else {
sd_jBoss = BooleanFALSE;
}
}
return sd_jBossbooleanValue();
}
public static boolean isJetty() {
ServerUtil sd = _instance;
if (sd_jetty == null) {
Class c = sdgetClass();
if (cgetResource(JETTY_CLASS) != null) {
sd_jetty = BooleanTRUE;
} else {
sd_jetty = BooleanFALSE;
}
}
return sd_jettybooleanValue();
}
public static boolean isJOnAS() {
ServerUtil sd = _instance;
if (sd_jonas == null) {
Class c = sdgetClass();
if (cgetResource(JONAS_CLASS) != null) {
sd_jonas = BooleanTRUE;
} else {
sd_jonas = BooleanFALSE;
}
}
return sd_jonasbooleanValue();
}
public static boolean isOC4J() {
ServerUtil sd = _instance;
if (sd_oc4j == null) {
Class c = sdgetClass();
if (cgetResource(OC4J_CLASS) != null) {
sd_oc4j = BooleanTRUE;
} else {
sd_oc4j = BooleanFALSE;
}
}
return sd_oc4jbooleanValue();
}
public static boolean isOrion() {
ServerUtil sd = _instance;
if (sd_orion == null) {
Class c = sdgetClass();
if (cgetResource(ORION_CLASS) != null) {
sd_orion = BooleanTRUE;
} else {
sd_orion = BooleanFALSE;
}
}
return sd_orionbooleanValue();
}
public static boolean isPramati() {
ServerUtil sd = _instance;
if (sd_pramati == null) {
Class c = sdgetClass();
if (cgetResource(PRAMATI_CLASS) != null) {
sd_pramati = BooleanTRUE;
} else {
sd_pramati = BooleanFALSE;
}
}
return sd_pramatibooleanValue();
}
public static boolean isResin() {
ServerUtil sd = _instance;
if (sd_resin == null) {
Class c = sdgetClass();
if (cgetResource(RESIN_CLASS) != null) {
sd_resin = BooleanTRUE;
} else {
sd_resin = BooleanFALSE;
}
}
return sd_resinbooleanValue();
}
public static boolean isRexIP() {
ServerUtil sd = _instance;
if (sd_rexIP == null) {
Class c = sdgetClass();
if (cgetResource(REXIP_CLASS) != null) {
sd_rexIP = BooleanTRUE;
} else {
sd_rexIP = BooleanFALSE;
}
}
return sd_rexIPbooleanValue();
}
public static boolean isSun() {
if (isSun7() || isSun8()) {
return true;
} else {
return false;
}
}
public static boolean isSun7() {
ServerUtil sd = _instance;
if (sd_sun7 == null) {
Class c = sdgetClass();
if (cgetResource(SUN7_CLASS) != null) {
sd_sun7 = BooleanTRUE;
} else {
sd_sun7 = BooleanFALSE;
}
}
return sd_sun7booleanValue();
}
public static boolean isSun8() {
ServerUtil sd = _instance;
if (sd_sun8 == null) {
Class c = sdgetClass();
if (cgetResource(SUN8_CLASS) != null) {
sd_sun8 = BooleanTRUE;
} else {
sd_sun8 = BooleanFALSE;
}
}
return sd_sun8booleanValue();
}
public static boolean isTomcat() {
ServerUtil sd = _instance;
if (sd_tomcat == null) {
Class c = sdgetClass();
if (cgetResource(TOMCAT_CLASS) != null) {
sd_tomcat = BooleanTRUE;
} else {
sd_tomcat = BooleanFALSE;
}
}
return sd_tomcatbooleanValue();
}
public static boolean isWebLogic() {
ServerUtil sd = _instance;
if (sd_webLogic == null) {
Class c = sdgetClass();
if (cgetResource(WEBLOGIC_CLASS) != null) {
sd_webLogic = BooleanTRUE;
} else {
sd_webLogic = BooleanFALSE;
}
}
return sd_webLogicbooleanValue();
}
public static boolean isWebSphere() {
ServerUtil sd = _instance;
if (sd_webSphere == null) {
Class c = sdgetClass();
if (cgetResource(WEBSPHERE_CLASS) != null) {
sd_webSphere = BooleanTRUE;
} else {
sd_webSphere = BooleanFALSE;
}
}
return sd_webSpherebooleanValue();
}
private ServerUtil() {
}
private static Logger _log = LoggergetLogger(ServerUtilclass);
private static ServerUtil _instance = new ServerUtil();
private String _serverId;
private Boolean _geronimo;
private Boolean _jBoss;
private Boolean _jetty;
private Boolean _jonas;
private Boolean _oc4j;
private Boolean _orion;
private Boolean _pramati;
private Boolean _resin;
private Boolean _rexIP;
private Boolean _sun7;
private Boolean _sun8;
private Boolean _tomcat;
private Boolean _webLogic;
private Boolean _webSphere;
}
代码来自 javaRoger 的博客,求采纳
使用ping命令进行扫描是最常用的方法。
根据ICMP报文的TTL的值,就可以大概知道主机的类型。
TTL 字段值可以帮助我们识别操作系统类型。
UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255
Compaq Tru64 50 ICMP 回显应答的 TTL 字段值为 64
微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128
微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32
当然,返回的TTL值是相同的
但有些情况下有所特殊
LINUX Kernel 22x & 24x ICMP 回显应答的 TTL 字段值为 64
FreeBSD 41, 40, 34;
Sun Solaris 251, 26, 27, 28;
OpenBSD 26, 27,
NetBSD
HP UX 1020
ICMP 回显应答的 TTL 字段值为 255
Windows 95/98/98SE
Windows ME
ICMP 回显应答的 TTL 字段值为 32
Windows NT4 WRKS
Windows NT4 Server
Windows 2000
Windows XP
ICMP 回显应答的 TTL 字段值为 128
这样,我们就可以通过这种方法来辨别操作系统
0条评论