Lua访问网页

示例

例子,实现https方式,登录网站,访问某个网页,修改其中参数的功能。其中xx应用时候需要修改。


require("curl")

local ipList =
{
"192.168.1.1",

  "192.168.1.1",

}

--登陆
function loginWeb(ip)
  c = curl.easy_init()
  c:setopt(curl.OPT_SSL_VERIFYHOST, 0);
  c:setopt(curl.OPT_SSL_VERIFYPEER, 0);
  c:setopt(curl.OPT_URL, "https://"..ip.."/")
c:setopt(curl.OPT_POSTFIELDS, "Username=admin&Password=admin&Frm_Logintoken=&action=login")

  c:setopt(curl.OPT_WRITEFUNCTION, function(buffer)

    --print(buffer)
    --print("\r\n---------------------------\r\n");
    return #buffer
  end)


c:perform()
end

--访问页面
function accessPage(ip)
  c = curl.easy_init()
  c:setopt(curl.OPT_SSL_VERIFYHOST, 0);
  c:setopt(curl.OPT_SSL_VERIFYPEER, 0);
  c:setopt(curl.OPT_URL, "https://"..ip.."/xxpage.html")

  c:setopt(curl.OPT_WRITEFUNCTION, function(buffer)

    --print(buffer)
    --print("\r\n---------------------------\r\n");
    return #buffer
  end)


c:perform()
end

--设置参数
function setParameter(ip, file)
  c = curl.easy_init()
  c:setopt(curl.OPT_SSL_VERIFYHOST, 0);
  c:setopt(curl.OPT_SSL_VERIFYPEER, 0);
  c:setopt(curl.OPT_URL, "https://"..ip.."/xx.php")
  c:setopt(curl.OPT_POSTFIELDS, "DaylightSavingsUsed=1&Dscp=-1")

  local htmlTable = {}
  c:setopt(curl.OPT_WRITEFUNCTION, function(buffer)

    --print(buffer)
    --print("\r\n---------------------------\r\n");
    table.insert(htmlTable, buffer)
    return #buffer
  end)


c:perform()

  local htmlStr = table.concat(htmlTable);
  local resultBuff = "";
  if string.match(htmlStr, "<result>SUCC</result>") ~= nil then
    resultBuff = ip.." config OK\r\n";
    print(resultBuff)
    file:write(resultBuff);

  else

    resultBuff = ip.." config NOK\r\n";
    print(resultBuff)

   file:write(resultBuff);

 end

end


local file = io.open(".\\result.txt", "w+");
for key,ip in ipairs(ipList) do
  loginWeb(ip);
  accessPage(ip);
  openLightSave(ip, file);
end
file:close();

print("Done")

转载于:https://www.cnblogs.com/gd-luojialin/p/10962880.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lua中,可以使用os.execute函数执行操作系统命令。但是,os.execute函数本身并不直接支持访问网页这样的操作。要在Lua访问网页,我们可以借助于Lua的网络库如LuaSocket或者Lua CURL等。 LuaSocket是一个流行的Lua网络库,可以方便地进行网络编程。通过使用LuaSocket库中的http类,我们可以实现在Lua访问网页。 下面是一个使用LuaSocket库的示例代码,演示如何在Lua访问网页: ```lua -- 引入 LuaSocket 库 local socket = require("socket") -- 建立一个TCP连接 local connection = socket.tcp() -- 设置连接参数 connection:settimeout(10) -- 设置超时时间为10秒 connection:connect("www.example.com", 80) -- 这里以访问 www.example.com 为例,端口为80 -- 发送HTTP请求头 connection:send("GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n") -- 读取响应内容 local response = connection:receive("*a") -- 输出响应内容 print(response) -- 关闭连接 connection:close() ``` 在上述示例代码中,我们使用LuaSocket库的tcp类创建了一个TCP连接。然后,我们设置连接的超时时间,并通过connect方法连接到指定的网站和端口。接着,我们发送HTTP请求头,并通过receive方法读取响应内容。最后,我们关闭连接,并将响应内容打印输出。 需要注意的是,运行以上代码需要事先安装LuaSocket库。具体的安装方式可以参考LuaSocket库的官方文档。 除了LuaSocket库,还可以使用其他网络库来实现在Lua访问网页。例如,Lua CURL库也是一个常用的选择。它提供了丰富的功能,包括文件上传、下载、FTP操作等。 希望以上回答对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值