-- (c) William Welch 2004 -- -- This software is provided 'as-is', without any express or implied -- warranty. In no event will the authors be held liable for any damages -- arising from the use of this software. -- -- Permission is granted to anyone to use this software for any purpose, -- including commercial applications, and to alter it and redistribute it -- freely, subject to the following restrictions: -- -- 1. The origin of this software must not be misrepresented; -- you must not claim that you wrote the original software. -- If you use this software in a product, an acknowledgment in -- the product documentation would be appreciated but is not required. -- -- 2. Altered source versions must be plainly marked as such, and must -- not be misrepresented as being the original software. -- -- 3. This notice may not be removed or altered from any source distribution. -- -- This license is commonly known as the zlib/libpng License. -- -- -- ip.jal bvwelch 19 may 2004 -- revised 18 march 2005 -- see RFC 791 for details function ip_is_for_me return bit is -- check for simple/common IPv4 format, no options if ( MemRd (ip_off) != 0x45 ) then return false end if -- does it match our IP address? if MemCompEx ( IP_OFF , 16 , MYIP , 0 , 4 ) == false then return false end if return true end function -- swap source and destination IP addresses. procedure ip_swap_addr is MemSwpEx ( ip_off , 12 , ip_off , 16 , 4 ) end procedure -- check for 802.3 ethertype function etype_802_3 return bit is return MemComp16Ex ( PKT , 12 , 0 , 8 ) end function -- swap ethernet source and destination procedure net_swap_addr is MemCpyEx ( PKT , 0 , PKT , 6 , 6 ) MemCpyEx ( PKT , 6 , MYMAC , 6 , 6 ) end procedure