Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/nmap/nselib/ |
Upload File : |
--- Auxiliary functions for table manipulation -- -- @author Daniel Miller -- @copyright Same as Nmap--See https://nmap.org/book/man-legal.html -- @class module -- @name tableaux local next = next local pairs = pairs local ipairs = ipairs local type = type local _ENV = {} local tcopy_local --- Recursively copy a table. -- -- Uses simple assignment to copy keys and values from a table, recursing into -- subtables as necessary. -- @param t the table to copy -- @return a deep copy of the table function tcopy (t) local tc = {}; for k,v in pairs(t) do if type(v) == "table" then tc[k] = tcopy_local(v); else tc[k] = v; end end return tc; end tcopy_local = tcopy --- Copy one level of a table. -- -- Iterates over the keys of a table and copies their values into a new table. -- If any values are tables, they are copied by reference only, and modifying -- the copy will modify the original table value as well. -- @param t the table to copy -- @return a shallow copy of the table function shallow_tcopy(t) local k = next(t) local out = {} while k do out[k] = t[k] k = next(t, k) end return out end --- Invert a one-to-one mapping -- @param t the table to invert -- @return an inverted mapping function invert(t) local out = {} for k, v in pairs(t) do out[v] = k end return out end --- Check for the presence of a value in a table --@param t the table to search into --@param item the searched value --@array (optional) If true, then use ipairs to only search the array indices of the table. --@return Boolean true if the item was found, false if not --@return The index or key where the value was found, or nil function contains(t, item, array) local iter = array and ipairs or pairs for k, val in iter(t) do if val == item then return true, k end end return false, nil end --- Returns the keys of a table as an array -- @param t The table -- @return A table of keys function keys(t) local ret = {} local k, v = next(t) while k ~= nil do ret[#ret+1] = k k, v = next(t, k) end return ret end return _ENV