bananalime.lua 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/usr/bin/lua
  2. function mac2banana(mac)
  3. v = tonumber(string.sub(table.concat(mac,""),-6),16)
  4. minlength = 8
  5. alphabets = {{"b","c","d","f","g","l","m","n","p","r","s","t","v","z"}, {"a","e","i","o","u"}};
  6. shiftalpha = 0
  7. alphaend = 0
  8. numalpha = #alphabets
  9. st = ""
  10. length = 0
  11. idx = (numalpha - 1 + shiftalpha + alphaend) % numalpha
  12. while (not (v == 0 and idx == (numalpha - 1 + shiftalpha) % numalpha and length >= minlength))
  13. do
  14. al = alphabets[idx + 1]
  15. r = v % #al
  16. v = math.floor(v / #al)
  17. st = al[r + 1] .. st
  18. idx = (idx + numalpha - 1) % numalpha;
  19. length = length + 1
  20. end
  21. return st
  22. end
  23. -- mac = {"4c","34","88","88","5e","e6"}
  24. -- mac = {"50","7b","9d","38","a3","bc"}
  25. mac = {"18","d6","c7","95","41","c3"}
  26. template = "Lime-%M4%M5%M6"
  27. for i=1,6,1 do template = template:gsub("%%M"..i, mac[i]) end
  28. print(template)
  29. local macbanana = mac2banana(mac)
  30. template = "Lime-%B8"
  31. for i=4,8,2 do template = template:gsub("%%B"..i, string.sub(macbanana, -i)) end
  32. print(template)