The earlier anonymous post is correct, but I'd like to add a couple of things:
- Many boxes sit behind a NAT-enabled firewall. That means the box will have an IP address of 192.168.x.x or 10.x.x.x and will have no reliable means of determining its Internet IP address (if it even has one)
- A box admin can set its IP address to whatever they want as long as their local router is equipped to read it
- Boxes can have multiple network interfaces with different IP addresses. How would you determine which is the real one?
- Even boxes directly hooked up to the Internet can spoof IP addresses
The only thing I can think of is to have your code "call home" to a server of yours. Then you would (probably) know the real IP address it was coming from and could respond by returning a cryptographic key of some sort. This key would then be used to "unlock" the remainder of your code. However, as my anonymous colleague mentioned, this relies on your code staying obfuscated, which is, well, difficult. This is because otherwise, even if you used such a scheme, the customer could modify the code to store the key and then share it among multiple installations.
IP address checking may be appropriate if you are providing some service via the Internet, which your software, installed on customer sites, needs to invoke. But unless you're planning to establish some communication, you may have to rely on compiled code.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.