STRING, read-only.

Available inall subroutines.

Client proxy type.

Defaults to ? when an IP address is not known to be a proxy or VPN. Other possible values are:

  • anonymous - IP address of client is not available. Includes services that change location to beat DRM, TOR points, temporary proxies, and other masking services.
  • aol - Proxied users from an AOL proxy.
  • blackberry — This new value will identify an IP address owned by Research In Motion (RIM), the company responsible for Blackberry mobile devices. All Blackberry users go through a centralized proxy location and thus cannot be accurately geo-targeted.
  • corporate - Generally considered harmless, but location can be a concern. Groups of users that are proxied through a central location or locations, and thus share a single network-apparent IP address.
  • edu - Proxied users from an educational institution.
  • hosting - Address belongs to a hosting facility and is likely to be a proxy as end users are not typically located in a hosting facility.
  • public - Multiple users proxied from a location allowing public internet access.
  • transparent - IP address of client is available via HTTP headers, though the value is not necessarily reliable (e.g., it can be spoofed).
  • ? - Not determined to be a proxy.


sub vcl_recv {
#FASTLY recv
if (client.geo.proxy_type ~ "^anonymous") {
error 600 "using anonymous proxy";
sub vcl_error {
if (obj.status == 600) {
set obj.status = 451;
return (deliver);

User contributed notes


Do you see an error in this page? Do have an interesting use case, example or edge case people should know about? Share your knowledge and help people who are reading this page! (Comments are moderated; for support, please contact