Sounds like one could use a free monitoring service. Not at university ... although they could set one up and check access to the server from the uni's network perspective. Those checks would be from the monitoring service prospective, so once setting it up, you have to allow the IP address you see in logs access to Moodle. Think I'd create a 'monitor.txt' file and put it at document root of the server. And then point the monitoring service to that specific file. 'monitor.txt' doesn't have to be a web page ... just has 'success' on the first line of the .txt file. Since that file is outside of Moodle, only apache is involved in granting/dis-allowing access. It those succeed all the time, then one could deduct that it might be related to what the Moodle code can do to check the IP address.
Here's one such free monitoring service: https://dashboard.monitor.us/en/sign-in
maybe others have better suggestions.
When your workstation at the uni can't access, can you do things like 'traceroutes', dns lookups, or pings? Examples:
From command prompt (assuming you are using Windows):
Mac from terminal:
ping -c 1 'fully_qualified_domain_name_of_moodle_server'
Dig (DNS check):
There is a Chrome tool:
There are also addons for FireFox:
In the ISO model, network comes before application. So if workstations being used cannot access the web server, Moodle (the application) has no information upon which to act (allow/deny) and thus it would appear to be Moodle (might not be). The default, if Moodle cannot check, is to block. So there is the 'reverse' to consider as well ... using IP blocker, Moodle has to be allowed whatever checks it does to determine if an IP is allowed or not. Example: let's say the Moodle code tries to do a reverse lookup on the IP address ... that involves DNS ... if that fails, result blocked. Let's say the reverse lookup is successful and the next test Moodle tries to use is a ping. If the uni servers are not allowed to use ICMP echos (ie, pings), that fails ... result blocked.
To resolve the issue is not an easy undertaking *IF* it is a networking issue. But think you have to resolve that issue first ... ie, make sure that networking is ALWAYS there before assuming it's Moodle. One has to run those test when it happens. Might run those test (ping/traceroute/DNS lookups) when it is working ... *record those results' in a text file for later reference. When those test are NOT working, then one has something to compare.
When I had a problem like this (once), I created a troubles.html page that just said 'Thanks' on it. Asked those having problems to go to that url. http://site/troubles.html Then looked at apache server access logs ...
Log might look something like this:
70.123.xxx.xx - - [19/Apr/2014:10:59:56 -0500] "GET /plugins/system/jcemediabox/js/jcemediabox.js?version=114 HTTP/1.1" 304 - "http://someserver.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:28.0) Gecko/20100101 Firefox/28.0"
Lots of info there isn't there!
If you had a monitor.txt or a troubles.html page at your apache root that would should in that log and some useful information to use in resolving the issue.
'spirit of sharing', Ken