一个ASP入门的问题。通过JS获取IP并且用ASP保存到服务器txt...
在局域网中访问一个局域网中服务器的网页,然后登记记录所访问的机子IP等信息。ipbook.html是获取IP等信息的页面,也是默认首页,经过测试,能完成功能。<html>
<head>
<title>IP登记</title>
</head>
<body>
<h1>说明</h1>
<p>
如果出现“已限制此网页运行脚本或ActiveX控件。”点击“允许阻止的内容。”<br>
如果出现“在此页上的ActiveX控件和本页上的其它部分的交互可能不安全。你想允许这种交互吗?”点击“是”<br>
然后填写自己姓名,办公室房间号。<br>
填写无误后,点击“登记”按钮。<br>
如果弹出“Ok”,证明登记完毕,点击“确定”,关闭网页即可。<br>
</p>
<object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" style="display:none;visibility:hidden"></object>
<object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo" style="display:none;visibility:hidden"></object>
<form action ="ipbook.asp" method ="post" name="ipForm" id="ipForm">
<br/> 姓名:<input type="text" name="username" id="username" >
<br/>房间号:<input type="text" name="userroom" id="userroom" >
<br/>MAC地址:<input type="text" name="macAddress" id="macAddress" >
<br/>IP地址:<input type="text" name="ipAddress" id="ipAddress" >
<br/>主机名:<input type="text" name="hostName" id="hostName">
</form>
<input type="submit" name="submit" value="登记" />
</body>
</html>
<script language="javascript">
var sMacAddr="";
var sIPAddr="";
var sDNSName="";
var service = locator.ConnectServer();
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</script>
<script FOR="foo" EVENT="OnObjectReady(objObject,objAsyncContext)" LANGUAGE="JScript">
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true){
if(objObject.IPEnabled && objObject.IPAddress(0) !=null && objObject.IPAddress(0) != "undefined")
sIPAddr = objObject.IPAddress(0);
if(objObject.MACAddress != null &&objObject.MACAddress != "undefined")
sMacAddr = objObject.MACAddress;
if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined")
sDNSName = objObject.DNSHostName;
}
</script>
<script FOR="foo" EVENT="OnCompleted(hResult,pErrorObject, pAsyncContext)" LANGUAGE="JScript">
ipForm.macAddress.value=sMacAddr;
ipForm.ipAddress.value=sIPAddr;
ipForm.hostName.value=sDNSName;
</script>ipbook.html生成和填写的表单信息,通过ipbook.asp来在服务器保存到网页所在目录下的ip.txt里。但是不知为什么,点了按钮以后没有反应,服务器上也没法保存信息。这里是ipbook.asp的代码 :<%
'读取各输入框的数据
username = Request ("username")
userroom = Request ("userroom")
macAddress = Request ("macAddress")
ipAddress = Request ("ipAddress")
hostName = Request ("hostName")
'检查各输入框是否输入有数据
If username = ""Or userroom = "" Or macAddress = "" Or ipAddress = "" Or hostName = "" Then Response.Write "输入内容不能为空白!"
Response.End
'不再处理以下的程序
End If
info = username & "," & userroom & "," & macAddress & "," & ipAddress & "," & hostName
'On Error Resume Next
'忽略所有的错误
'建立 FileSystemObject对象
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Application.Lock
'取得ip.txt的完整路径
FilePath = Server.MapPath("ip.txt")
'打开ipold.txt
Set fin = fso.OpenTextFile(OldFilePath,8,True,)
'写入信息
fin.WriteLine info
fin.Close
Application.Unlock
Response.Redirect "over.html"
%> asp直接写代码就好了吧?不许要html、head、body标签吧?而且添加了这些标签也没作用。
记得建立ip.txt
ipbook.asp的问题:
行13:then后面回车,不然end if无效
行33:33.Set fin = fso.OpenTextFile(FilePath,8,True)
OldFilePath改成FilePath……逗号都用英文的,我建议用ADODB.Stream,所有页面用UTF-8,保存txt用unicode……
还有就是你的ipbook.html23行,应该放在</form>前面……
35行不要用JScript……这东西好像就老IE兼容?你的ipbook.html用到的自动解析我这所有浏览器都是出错的不会获取这些信息的……当然你们机器都设置好了是另外一回事情。
-----------------------------------------------
你IIS把显示详细错误开出来不就能知道问题了吗? 我猜是目录权限问题 谢谢各位
能看完代码就很感谢了
就是如@hein 所说,旧思路导致的变量命名没有更新。
修正以后OK了。
能看出中文和英文逗号,我的修行果然是太差了T_T
另外,确实很多IE(IE8开始,似乎就阻止了,不晓得有没有什么更好的方法获取相关信息) 但是,为什么要用asp 看到asp的时候我以为有谁挖坟了。。。 lexluthor 发表于 2016-7-1 11:28
看到asp的时候我以为有谁挖坟了。。。
对不起=。= aithinkso 发表于 2016-7-1 10:21
但是,为什么要用asp
更好更方便的不知道。
页:
[1]