Wenn der Client die genannten Informationen mitsendet, tut er dies höchstwahrscheinlich in Form von HTTP-Headern. Diese zur Verfügung zu stellen ist etwas, das PHP bereits tut. Mit anderen Worten: Dieses Problem ist bereits gelöst ;-)
da habe ich nicht so den einblick, dass auch http-header die nicht standardisiert sind von php verarbeitet werden wusste ich nicht ;)