On FreeBSD you could try the
pf packet filter. Then it would be something like this.
Code:
ext_if="re0"
table <not_paid> persist
rdr pass on $ext_if inet proto tcp from <not_paid> port 80 -> 192.168.1.6 port 80
The table <not_paid> can be filled with IP addresses like this
Code:
pfctl -t not_paid -Tadd 204.92.77.11
See
http://daemonforums.org/showthread.php?t=108 for more information about
pf