找回密码
 立即注册
搜索
查看: 1769|回复: 7

[网络] 一个ASP入门的问题。通过JS获取IP并且用ASP保存到服务器txt...

[复制链接]
发表于 2016-6-30 19:41 | 显示全部楼层 |阅读模式
在局域网中访问一个局域网中服务器的网页,然后登记记录所访问的机子IP等信息。
ipbook.html是获取IP等信息的页面,也是默认首页,经过测试,能完成功能。
  1. <html>  
  2. <head>  
  3. <title>IP登记</title>  
  4. </head>  
  5. <body>
  6. <h1>说明</h1>
  7. <p>
  8. 如果出现“已限制此网页运行脚本或ActiveX控件。”点击“允许阻止的内容。”<br>
  9. 如果出现“在此页上的ActiveX控件和本页上的其它部分的交互可能不安全。你想允许这种交互吗?”点击“是”<br>
  10. 然后填写自己姓名,办公室房间号。<br>
  11. 填写无误后,点击“登记”按钮。<br>
  12. 如果弹出“Ok”,证明登记完毕,点击“确定”,关闭网页即可。<br>
  13. </p>
  14. <object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" style="display:none;visibility:hidden"></object>  
  15. <object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo" style="display:none;visibility:hidden"></object>   
  16. <form action ="ipbook.asp" method ="post" name="ipForm" id="ipForm">  
  17. <br/> 姓名:<input type="text" name="username" id="username" >
  18. <br/>房间号:<input type="text" name="userroom" id="userroom" >
  19. <br/>MAC地址:<input type="text" name="macAddress" id="macAddress" >  
  20. <br/>IP地址:<input type="text" name="ipAddress" id="ipAddress" >  
  21. <br/>主机名:<input type="text" name="hostName" id="hostName">
  22. </form>
  23. <input type="submit" name="submit" value="登记" />  
  24. </body>  
  25. </html>  

  26. <script language="javascript">  
  27. var sMacAddr="";  
  28. var sIPAddr="";  
  29. var sDNSName="";  
  30. var service = locator.ConnectServer();  
  31. service.Security_.ImpersonationLevel=3;  
  32. service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');  
  33. </script>  
  34. <script FOR="foo" EVENT="OnObjectReady(objObject,objAsyncContext)" LANGUAGE="JScript">  
  35.          if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true){  
  36.                            if(objObject.IPEnabled && objObject.IPAddress(0) !=null && objObject.IPAddress(0) != "undefined")  
  37.                                          sIPAddr = objObject.IPAddress(0);  
  38.                            if(objObject.MACAddress != null &&objObject.MACAddress != "undefined")  
  39.                      sMacAddr = objObject.MACAddress;  
  40.                            if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined")  
  41.                                          sDNSName = objObject.DNSHostName;  
  42.           }  
  43. </script>  
  44.   
  45. <script FOR="foo" EVENT="OnCompleted(hResult,pErrorObject, pAsyncContext)" LANGUAGE="JScript">  
  46. ipForm.macAddress.value=sMacAddr;  
  47. ipForm.ipAddress.value=sIPAddr;  
  48. ipForm.hostName.value=sDNSName;  
  49. </script>  
复制代码
ipbook.html生成和填写的表单信息,通过ipbook.asp来在服务器保存到网页所在目录下的ip.txt里。但是不知为什么,点了按钮以后没有反应,服务器上也没法保存信息。这里是ipbook.asp的代码 :
  1. <%   

  2. '读取各输入框的数据
  3.    
  4. username = Request ("username")
  5. userroom = Request ("userroom")
  6. macAddress = Request ("macAddress")
  7. ipAddress = Request ("ipAddress")
  8. hostName = Request ("hostName")

  9. '检查各输入框是否输入有数据
  10.    
  11. If username = ""  Or userroom = "" Or macAddress = "" Or ipAddress = "" Or hostName = "" Then Response.Write "输入内容不能为空白!"   
  12. Response.End
  13. '不再处理以下的程序  
  14. End If
  15. info = username & "," & userroom & "," & macAddress & "," & ipAddress & "," & hostName
  16.   
  17. 'On Error Resume Next
  18. '忽略所有的错误
  19.    
  20. '建立 FileSystemObject对象
  21.    
  22. Set fso = Server.CreateObject("Scripting.FileSystemObject")
  23.    
  24. Application.Lock   

  25. '取得ip.txt的完整路径
  26.    
  27. FilePath = Server.MapPath("ip.txt")  

  28. '打开ipold.txt   
  29. Set fin = fso.OpenTextFile(OldFilePath,8,True,)
  30.    
  31. '写入信息   
  32. fin.WriteLine info
  33. fin.Close
  34. Application.Unlock
  35. Response.Redirect "over.html"   
  36. %>
复制代码
asp直接写代码就好了吧?不许要html、head、body标签吧?而且添加了这些标签也没作用。


回复

使用道具 举报

     
发表于 2016-7-1 01:38 | 显示全部楼层
记得建立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把显示详细错误开出来不就能知道问题了吗?
回复

使用道具 举报

     
发表于 2016-7-1 01:52 | 显示全部楼层
我猜是目录权限问题
回复

使用道具 举报

 楼主| 发表于 2016-7-1 10:13 | 显示全部楼层
谢谢各位
能看完代码就很感谢了

就是如@hein 所说,旧思路导致的变量命名没有更新。
修正以后OK了。
能看出中文和英文逗号,我的修行果然是太差了T_T

另外,确实很多IE(IE8开始,似乎就阻止了,不晓得有没有什么更好的方法获取相关信息)
回复

使用道具 举报

     
发表于 2016-7-1 10:21 | 显示全部楼层
但是,为什么要用asp
回复

使用道具 举报

发表于 2016-7-1 11:28 来自手机 | 显示全部楼层
看到asp的时候我以为有谁挖坟了。。。
回复

使用道具 举报

 楼主| 发表于 2016-7-1 11:58 | 显示全部楼层
lexluthor 发表于 2016-7-1 11:28
看到asp的时候我以为有谁挖坟了。。。

对不起=。=
回复

使用道具 举报

 楼主| 发表于 2016-7-1 11:58 | 显示全部楼层
aithinkso 发表于 2016-7-1 10:21
但是,为什么要用asp

更好更方便的不知道。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-8-21 20:43 , Processed in 0.026046 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表