If the session represents a remote user (someone not logged on through the console's keyboard), the script performs additional steps. Two pieces of information that the function returnsthe client machine's IP address and display sizeare packed into binary structures that the script must unpack. The code at callout C unpacks the IP address structure into two components: the network identifier ($Net) and a 20-byte address array ($Address) that the script must also unpack. When $Net is a value of 0x02, the network is TCP/IP. (Other values indicate IPX, NetBIOS, or other networks.) If the network is TCP/IP, the client's IP address is in bytes 2 through 5 in $Address. The code at callout D looks in those positions to discover the address. The client display's width, height, and color depth are simply packed as three unsigned long values. The trick that the code in callout E performs is to roll the color depth value left by 2 bits to discover the color depth (i.e., the number of colors). The resulting value is the number of bits used to represent a color pixel. . . .