AFAIK, il n'y a pas de solution élégante. Vous pouvez faire des suppositions éclairées, mais alors, prenez cet exemple: je débranche mon ordinateur portable en Allemagne et vais aux USA. Je le branche dans le bureau des États-Unis - les paramètres régionaux sont les mêmes, le fuseau horaire n'a pas changé, maintenant quoi?
Les choses dont vous pouvez faire une estimation:
- paramètres régionaux et linguistiques (mais un Allemand aux Etats-Unis peuvent être en utilisant de_DE)
- fuseau horaire (mais sommes-nous à New York ou au Brésil? même offset TZ, dans votre cas, (PDT/EDT) et CET est assez différent)
- adresse IP interne (en supposant que vos bureaux ont un adressage interne différent (par exemple "10.5.20.0/24 - Allemagne, 192.168.4.0/24 - Etats-Unis "; que dire des VPN, qu'en est-il des périphériques non connectés?)
- adresse IP externe (si vous besoin de précision à l'échelle USA/Europe, ceci est passable; bien sûr, réseaux privés virtuels désordre ce, et la question dit la connectivité externe peut ne pas être disponible)
- tenir une liste dont l'ordinateur est là (en désordre et difficile à maintenir)
- tenir une liste dont l'utilisateur est où
- se rappeler où cet ordinateur était sur le dernier démarrage du programme (et si elle a été corrigée manuellement)
en attribuant un score à chacune de ces choses, et la vérification pour chacun, vous pourriez obtenir une probabilité partition où l'ordinateur est . Vous pourriez cependant avoir des suppositions incorrectes, alors faites aussi une commande manuelle.
Le score combiné peut être assez précis dans le cas général; ce que vous devez faire est de trouver les cas de bord et de coin, puis trouver un moyen de les identifier.
C'est vrai! :(Jusqu'à présent, je tiens au nom de l'ordinateur car ils sont différents.Mais qui sait il pourrait arriver qu'ils seront unifiés dans le futur ... – koleto
bon point. Je pense que dans ce cas, la liste déroulante permettant à l'utilisateur de changer de lieu manuellement (et peut-être stocker dans certaines préférences) est le meilleur moyen – dzida
Oui, je vais mettre en œuvre de cette manière dans la prochaine fois ... Si je suis sûr que le time.timezone donnera une valeur positive aux Etats-Unis, il pourrait résoudre partiellement mon problème? – koleto