[eluser]Aken[/eluser]
Are you certain that they'll have the same IP, even on the same university network? I'd verify that, since it might still be a somewhat viable option.
Without some sort of unique user identifier, sessions/cookies and IP-based rules are your best options. You could go further into trying to identify a unique user by things like user agent or other identifiers, but those can all be faked as well if truly desired.
Another thing you'll want to watch out for with a public voting system is preventing spam / bot votes. A typical hidden field scenario would likely help with that significantly.
I don't have any practical examples to back these up, but here are a few ideas that pop into mind. A couple require extra steps, but are helpful in keeping voting accurate.
1) Use basic cookie/IP checking, and assume your users are fairly reputable. You can always log submissions and such to keep an eye on naughty people.
2) Require an email to vote. After they vote, send them a confirmation email. Once they click the confirm link, their vote is counted. You now have their email to prevent duplicates, and since they require actually confirming the vote, people can't use any old BS email they want. Potential caveat here: some email clients (Gmail included) allow you to manipulate your email, but have it still come to your account. example@gmail & example+flag@gmail are the same thing, but will show up as different to your records. This is another step for the user, but is more accurate without needing to register for an account (depending on your website, you could even give them the option of signing up in this confirmation email).
3) Similar to needing an actual account, you could give users the option to sign in using Facebook, Twitter, or other common login that's popular with your user base.