Advertisement
Guest User

startup

a guest
Oct 21st, 2021
37
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function ufw()
  2.   haa = fs.open(".fw", "r")
  3.   dataa = haa.readAll()
  4.   data = textutils.unserialize(dataa)
  5.   return data
  6. end
  7.  
  8. function split (inputstr, sep)
  9.         if sep == nil then
  10.                 sep = "%s"
  11.         end
  12.         local t={}
  13.         for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
  14.                 table.insert(t, str)
  15.         end
  16.         return t
  17. end
  18.  
  19. function in_table ( e, t )
  20.     for _,v in pairs(t) do
  21.         if (v==e) then return true end
  22.     end
  23.     return false
  24. end
  25.  
  26. term.clear()
  27. term.setCursorPos(1, 1)
  28. print("====================")
  29. print("\n>> Gauugle! Modem <<")
  30. print("\n====================")
  31. shell.run("id")
  32.  
  33. if fs.exists(".settings") == false then
  34.    print("\n\nE' ora di impostare il modem!");
  35.    print("\nInserisci il lato del cavo LAN:")
  36.    lancable = read()
  37.    print("\nPerfetto! Ora inserisci il lato del modem wireless:")
  38.    wireless = read()
  39.    print("\n\nSto preparando le impostazioni di sistema...")
  40.    h = fs.open(".settings", "w")
  41.    h.writeLine("lan = '"..lancable.."'");
  42.    h.writeLine("wm = '"..wireless.."'");
  43.    h.flush()
  44.    h.close()
  45.    ha = fs.open(".fw", "w")
  46.    door = {}
  47.    table.insert(door, "80")
  48.    ha.write(textutils.serialize(door))
  49.    ha.flush()
  50.    ha.close()
  51.    print("\nFatto! :D\nRiavvio il modem!")
  52.    shell.run("reboot")
  53. else
  54.    shell.run(".settings")
  55.    rednet.open(wm)
  56.    modem = peripheral.wrap(lan)
  57. end
  58.  
  59. fw = ufw()
  60. -- Ok, inizia lo scambio ovvio di informazioni ma prima apro le porte desiderate. Default: 80
  61. while true do
  62.  
  63. ids, msg, protocol = rednet.receive()
  64.  
  65. print("Protoc: "..protocol)
  66. if protocol == "39.255573" then
  67.  print("Ricevuto messaggio su conf()");
  68.  res = split(msg, "_")
  69.   if msg == "data" then
  70.    print("Ricevuto conf()data")
  71.    rednet.send(ids, textutils.serialize(fw))
  72.   elseif res[1] == "remove" then
  73.    table.remove(fw, res[2])
  74.    ha = fs.open(".fw", "w")
  75.    table.insert(door, "80")
  76.    ha.write(textutils.serialize(fw))
  77.    ha.flush()
  78.    ha.close()
  79.    rednet.send(ids, textutils.serialize(fw))
  80.    shell.run("reboot")
  81.   elseif res[1] == "add" then
  82.    table.insert(fw, res[2])
  83.    ha = fs.open(".fw", "w")
  84.    table.insert(door, "80")
  85.    ha.write(textutils.serialize(fw))
  86.    ha.flush()
  87.    ha.close()
  88.    rednet.send(ids, textutils.serialize(fw))
  89.    shell.run("reboot")
  90.   end
  91. else
  92.  
  93. print("Ricevuto "..msg)
  94. print("Inoltro richiesta a "..msg..":80")
  95.  
  96. modem.sendChannel(80, msg)
  97.  
  98. for _, v in pairs(fw) do
  99.    modem.setListening(v, true)
  100. end
  101.  
  102. local event, side, id, chn, mess = os.pullEvent("lan_message")
  103.  
  104. for lo, v in pairs(fw) do
  105.  if chn ~= v then
  106.   print("\nRichiesta su porta chiusa ("..v..")")
  107.   shell.run("reboot")
  108.  end
  109. end
  110.  
  111. print("Ricevuto risposta da: 144.91.97."..id)
  112.  
  113. sleep(0.7)
  114.  
  115. rednet.send(ids, mess)
  116. end
  117. sleep(0.1)
  118. end
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement