0

プレックス サーバーから再生するときに、2 人のユーザーが同じユーザー名を使用しているが異なる IP を使用している場合に通知するために、powershell スクリプトを作成しています。

その時点でストリーミングされている現在の接続の xml 表示を取得することができました。

私がする必要があるのは、ユーザー ID と IP アドレスを抽出する reg 式を考え出すことです。次に、重複するユーザー ID があり、IP が異なるかどうかを確認するために検索を行うことができます。

'\b\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}\b'</ である IP アドレスの正規表現を見つけることができましたp>

しかし、そこからユーザーIDを抽出するのにも苦労しています。ユーザー ID は常に数字ですが、制限はありません。

データ例はこちら

<User id="13456" title="usersmith" />
<Player address="2.2.2.2" device="Windows" machineIdentifier="a9b222ef940" 
4

1 に答える 1

1

これをxmlとして解析します。例:

#$xml = [xml](Get-Content myfile.xml)
#$xml = [xml](Invoke-WebRequest ... whatever).Content
$xml = [xml]@"
<?xml version="1.0" encoding="utf-8"?>
<root>
<User id="13456" title="usersmith" />
<Player address="2.2.2.2" device="Windows" machineIdentifier="a9b222ef940" />
</root>
"@

$xml.root.user.id

ただし、本当に正規表現が必要な場合は、実際の xml-data に適合しない可能性のある行頭 -anchor を除いて @heemayl のソリューションを試し^てください (その場合、悪いサンプルデータを提供しました)。元:

if('User id <User id="1354" thumb="plex.tv/users/a51d"; title="bob" />' -match '<User\s+id="([^"]+)"') { $Matches[1] }
于 2016-05-10T12:30:26.257 に答える