There are many ways to implement licensing and to enforce your licensing scheme efficiently. Doing so without a guaranteed internet connection makes it even harder, and easier for crackers to bypass.
When you deploy your product to your customer's server, you deploy, among other files, also some binary files, such as DLLs. One of these DLLs can encapsulates your licensing engine, and this engine should read an encrypted data file where the details of the license will be stored. You should ensure that if this data file is missing, the product won't work, so if the encryption is strong enough, it will be very hard to change the terms of the license.
Internet connection is important for many reasons. For example, if your licensing scheme involves date/time, i.e. limiting your product to run for X months, you better connect to an ITS (Internet Time Server) such as
http://tf.nist.gov/tf-cgi/servers.cgi[
^] to query the date/time and avoid manually change of the server's internal clock, to bypass this restriction.