Can we assume that all users today have Internet access

desktop applicationinternet

As the Internet is pretty much ubiquitous, can we as developers assume that all users have Internet access? Now I don't mean that the code is written in such a way that if there is no connection then the whole program crashes due to lack of error code. What I mean is, can programs today be developed under the assumption that its users will always have access to the Internet?

You may ask "What do we gain by assuming that?" The reason why I'm asking is because at uni we use quite a few programs which require Internet access due to the way it checks the licenses (it checks your IP address — if it's not an address at campus, then you you're not allowed to use it). Note that the program itself should work fine without Internet access; it's just needed for license checking.

EDIT:
I'm talking about desktop applications here.

EDIT2:
From some of the answers I get a feeling of being accused of exploiting the users in unethical ways. I'm not endorsing what I've described in this question — I'm just asking about it because the developers of some of the programs we use at uni have done this. Personally I think doing this is plain out stupid and wrong.

Best Answer

Bad idea, for three reasons. First off, even though everyone has Internet access these days, which is basically true, they don't always have it available at all times. My primary machine is a laptop, and it's connected a lot of the time, but not when I'm on the bus, for example.

Second, and sort of related to the first, is your method of checking. What if a student gets a legitimate copy of the program, puts it on his laptop computer, and then goes to study with a friend who lives off-campus? You've just introduced a heck of a false-positive condition into your license checking.

Third, there's an ethical problem with the license checking in the first place. If a person chooses to place a program on their computer, you have no right to cause their computer to treat it as invalid. In any other context that's called hacking and it could land you in all sorts of hot water, and just because our copyright laws have been hijacked by copyright owners to make a special-case legal exemption for this scenario, that doesn't make it right.

Enforcing the law is the job of law enforcement, and private individuals are highly discouraged from taking law enforcement into their own hands (vigilantism) because they tend to do it all wrong. (Just look at the Sony rootkit!)

Your best course of action would be to assume that the user has an Internet connection available for features that actually require it, but not require it for features that can get by without it, and certainly don't require it just to convince the program that it's not an illegitimate copy!