2016-06-14 12 views
-2

から私は、アプリケーションがすべての文字列に使用されたされたかを知りたい取得appnameのユーザーエージェント

VK/28 CFNetwork/711.4.6 Darwin/14.0.0 
Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1 
Instagram 8.2.0 (iPhone4,1; iPhone OS 8_4; ru_RU; ru; scale=2.00; 640x960) AppleWebKit/420+ 
Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1 

のような文字列を持っています。それは

私はブラウザを判断する方法を見つけるが、私は知らないアプリを得る方法を見つける。

答えて

1

あなたは、このように取得することができます

>>> log = '''VK/28 CFNetwork/711.4.6 Darwin/14.0.0 
... Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1 
... Instagram 8.2.0 (iPhone4,1; iPhone OS 8_4; ru_RU; ru; scale=2.00; 640x960) AppleWebKit/420+ 
... Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1 
... ''' 
>>> agents = [line.split()[0].split('/')[0] for line in log.splitlines()] 
>>> print '\n'.join(agents) 
VK 
Mozilla 
Instagram 
Mozilla 
1

あなただけのヘッダーを解析しようとしている、またはあなたのサーバーにアクセスし、既知のアプリケーション/サービスに対するユーザーエージェント文字列にマッチしようとしている場合、それは非常に明確ではありません。前者の質問はアデムによって答えられているので、後者の説明がここにあります。

User-agentヘッダーを通じてサーバーにアクセスするアプリの正確な名前を知る方法はありません。 HTTP/1.1 Standardはユーザーエージェントの文字列形式を指定しますが、主に人間が操作するブラウザで使用されますが、ボットやその他のソフトウェアでは簡略化された形式を使用したり、偽装することさえあります(wiki参照)。

あなたの場合は、追跡したいアプリケーションのリストを用意してから、ウェブ上のユーザーエージェントヘッダー(thisまたはthisなど)を探して、HTTPヘッダーとあなたのリスト内の項目とユーザーエージェントの文字列を一致させます。

関連する問題