メインメニュー
XAMPP アレンジ
IED
WSL2
-
道具箱
リポジトリ編
フレームワーク編
公開ソフトウェア
メタ
リンク
- PHP ライブラリ
- PHP 言語
wsl2:interop目次
編集中WSL2 LinuxとのWindowsの相互運用性
— y2sunlight 2020-12-10
関連記事
- WSL2 LinuxとのWindowsの相互運用性
リンク
- Linux との Windows の相互運用性 — Microsoftドキュメント
ファイルアクセス
WindiswからLinuxのファイルをアクセスする
以下の形式で、WindiswからLinux上のファイルをアクセスできます:
\\wsl$\{distribution name}\{path}
実行例
PS C:\> dir \\wsl$\Ubuntu-20.04\ ディレクトリ: \\wsl$\Ubuntu-20.04 Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2020/12/11 8:57 home d----- 2020/08/05 6:39 srv d----- 2020/12/24 13:54 etc d----- 2020/08/05 6:39 opt d----- 2020/12/11 23:40 root d----- 2020/12/11 8:57 mnt d----- 2020/08/05 6:40 usr ...
LinuxからWindiswのファイルをアクセスする
以下の形式で、LinuxからWindisw上のファイルをアクセスできます:
/mnt/{drive name}/{path}
実行例
$ ls /mnt/c/Users -l total 0 lrwxrwxrwx 1 root root 18 Dec 7 2019 'All Users' -> /mnt/c/ProgramData dr-xr-xr-x 1 root root 512 Dec 18 23:44 Default lrwxrwxrwx 1 root root 20 Dec 7 2019 'Default User' -> /mnt/c/Users/Default drwxrwxrwx 1 root root 512 Dec 18 23:29 Public -r-xr-xr-x 1 root root 174 Dec 7 2019 desktop.ini drwxrwxrwx 1 root root 512 Dec 18 23:55 y2sunlight
ネットワークアクセス
WLS2の仮想ネットワーク
WSL2は、Hyper-Vが管理する仮想マシン環境で動作します。このとき物理ハードウェアの上で動いているOSをホストOS、仮想マシン内で動作しているOSをゲストOSと呼ぶ事にします。そして、ホストマシンには物理NICが、仮想マシンには仮想NICが提供されています。
ホストマシンとゲストマシンの間にはHyper-Vの仮想ネットワークが構築されます。この仮想的ネットワークは、ホストマシンと仮想マシンが共に接続した状態を作ります。
WSL2を起動すると、「vEthernet(WSL)」という仮想ネットワークに接続するホスト側のネットワークアダプター(NIC)が作られますが、仮想ネットワークを構成している仮想スイッチは、ホストOSのネットワーク機能で見ることはできません。
仮想ネットワークのIPアドレスはプライベートアドレスが割り当てられ、ホストOSの再起動によって変更されます。
複数のWSL2ディストリビューションは同じネットワーク名前空間を使用し、ネットワークの分離はありません。参考
https://github.com/microsoft/WSL/issues/4304WSL2のリスニングポート
WSL2では、仮想マシン側でリスニングされているポート番号と同じポート番号を、ホスト側で動作しているwslhost.exeがリスニングします。
例えば、仮想マシン側でポート80をリスニングしていると、ホスト側でも wslhost.exe がポート80をリスニングします。そして、 wslhost.exe は、受け取ったパケットを仮想ホスト側の同じポート番号に転送します。つまり、ホスト側がlocalhostの(仮想ホスト側がリスニングしていると同じ)ポート番号にアクセスすると、仮想ホスト側のネットワークサービスからは、eth0からのアクセスのように見えます。
localhost
IPv4では、ネットワークアドレス
127.0.0.0
が localhost の数値表現として扱われ、慣例的に末尾 1 の127.0.0.1
を自分自身のIPアドレスの名前として使用されます。localhostという名前は、どんな名前解決システムも使うことなく 127.0.0.1 に解決で出来ます。IPv6では、::1
だけが localhost の数値表現として扱われ、IPv4のようにlocalhostはホスト名でありネットワークの表現ではありません。WSL2が稼働しているとき、仮想マシン上の特定のポート番号をリスニングしている、HTTPサーバなどのTCP/IPアプリケーションに対して、ホストマシン側からは、localhost を接続先として指定すれば( http://localhost:<ポート番号>/ )、そのアプリケーションにアクセスすることが出来ます。
WLS2側からWindows側のネットワークにアクセスする
TODO:
Windows側からWLS2側のネットワークにアクセスする
TODO:
WindowsからのLinuxコマンドを実行する
デフォルトのディストリビューション
Windows から Linux のコマンドを実行する場合、特に指定しなければデフォルトのディストリビューションが対象になります。デフォルトのディストリビューションを調べるには、以下のようにします:
実行例:
PS C:\Users\sunlight> wsl -l -v NAME STATE VERSION * Ubuntu-20.04-2 Running 2 CentOS7.6 Running 2 Ubuntu-20.04 Stopped 2
- この例では、
Ubuntu-20.04-2
がディストリビューションです。
以下のようにすれば、デフォルトのディストリビューションが変更できます:
wsl -s {distribution name}
Linux のコマンドの実行
wsl コマンドを使って、次の形式で Windows のコマンドプロンプト(cmd) または PowerShell から Linux のコマンドを実行できます。
wsl {Linux command}
- この形式はデフォルトのシェルを起動し、Linux コマンドを実行します。
- 直接Linux コマンドを実行する場合:
wsl -e {Linux command}
また、 ディストリビューションやユーザを指定してコマンドを実行するには:
wsl -d {distribution name} -u {user name} {Linux command}
実行例1:簡単な例
PS C:\Users\sunlight> wsl ls -l lrwxrwxrwx 1 root root 66 Dec 18 23:34 スタート メニュー -> /mnt/c/Users/sunlight/AppData/Roaming/Microsoft/Windows/Start Menu drwxrwxrwx 1 root root 512 Dec 18 23:45 3D Objects drwxrwxrwx 1 root root 512 Dec 18 23:35 AppData lrwxrwxrwx 1 root root 37 Dec 18 23:34 Application Data -> /mnt/c/Users/sunlight/AppData/Roaming ...
実行例2:ユーザを指定
PS C:\Users\sunlight> wsl whoami # ユーザを指定しない場合 root PS C:\Users\sunlight> wsl -u y2sunlight whoami # ユーザを指定する場合 y2sunlight
実行例3:ディストリビューションとユーザを指定
PS C:\Users\sunlight> wsl -d CentOS7.6 -u y2sunlight cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
実行例4:dockerサービスを起動してコンテナを開始する
PS C:\Users\sunlight> wsl sudo service docker start * Starting Docker: docker [ OK ] PS C:\Users\sunlight> wsl docker start myphp73 myphp73
- wslはLinuxコマンドを1つしか受け付けてくれません(以下の「複雑なコマンドを実行する」を参照して下さい)。従って以下のようなコマンドはエラーになります:
wsl sudo service docker start && docker start myphp73
実行例5-1:PowerShellコマンドとLinuxコマンドの組み合わせ
PS C:\Users\sunlight> netstat -an|wsl grep 8080 TCP [::1]:8080 [::]:0 LISTENING
- パイプ(
|
)の左がPowerShell、右がLinuxコマンドです。
実行例5-2:PowerShellコマンドとLinuxコマンドの組み合わせ
PS C:\Users\sunlight> wsl netstat -an|Select-String 8080 tcp6 0 0 :::8080 :::* LISTEN
- パイプ(
|
)の左がLinuxコマンド、右がPowerShellです。 - 上2例で分かるように、パイプ(
|
)はPowerShellが支配しています。
wsl netstat
はLinux側のポートを見ている点に注意して下さい。確認の為、wsl netstat
とnetstat
の両方をそのまま実行してその違いを比べる事ができます。実行例6:複雑なコマンドを実行する
PS C:\Users\sunlight> wsl -d Ubuntu-20.04-2 -u root bash -c "service docker start && docker start myphp73" * Starting Docker: docker [ OK ] myphp73
bash
の-c
オプションを使って複雑なLinuxコマンドを実行しています。-u root
は不要ですが、sudo
していないので明示しました。
bashターミナルに切り替える
Windowsのコマンドプロンプト(cmd) または PowerShell から bash ターミナルに切り替えるには
bash
コマンドを使用します:PS C:\Users\sunlight> bash
bash コマンドには、ディストリビューションやユーザのオプション指定がないので、その場合は、wsl コマンドを使用します。実行例:
PS C:\Users\sunlight> wsl -d CentOS7.6 -u y2sunlight bash
LinuxからのWindowsコマンドを実行する
Windowsのコマンドの実行
次のようにして、LinuxからのWindowsコマンドを実行できます:
{command name}.exe
- Windows側コマンドを起動するには、拡張子まで含めて指定します。
- PATH環境変数に登録されていないコマンドは、フルパスで指定します。
- Windows側は
UTF-8
の環境下で実行されます。 - コマンドプロンプト(
cmd.exe
)の内部コマンドcmd.exe /c {command}
と指定します。 - パス名を指定する場合の特殊文字は
\
でエスケープするか、引用符で囲みます。
例:cmd.exe /c dir D:\\
実行例1:簡単な例
$ hostname.exe # コンピュータ名の取得 zeus2
実行例2:Windows側のIPアドレスの取得
$ ipconfig.exe Windows IP 構成 イーサネット アダプター イーサネット: 接続固有の DNS サフィックス . . . . .: リンクローカル IPv6 アドレス. . . . .: fe80::a058:d977:ab7:9f83%7 IPv4 アドレス . . . . . . . . . . . .: 192.168.11.18 サブネット マスク . . . . . . . . . .: 255.255.255.0 デフォルト ゲートウェイ . . . . . . .: 192.168.11.1 イーサネット アダプター vEthernet (WSL): 接続固有の DNS サフィックス . . . . .: リンクローカル IPv6 アドレス. . . . .: fe80::2858:9897:3574:179e%20 IPv4 アドレス . . . . . . . . . . . .: 172.26.144.1 サブネット マスク . . . . . . . . . .: 255.255.240.0 デフォルト ゲートウェイ . . . . . . .:
実行例3:WindowコマンドとLinuxコマンドの組み合わせ
$ ipconfig.exe | grep IPv4 IPv4 Address. . . . . . . . . . . : 192.168.11.18 IPv4 Address. . . . . . . . . . . : 172.26.144.1
実行例4:コマンドプロンプト(
cmd.exe
)の内部コマンド~$ cmd.exe /c ver '\\wsl$\Ubuntu-20.04-2\home\y2sunlight' 上記の現在のディレクトリで CMD.EXE を開始しました。 UNC パスはサポートされません。Windows ディレクトリを既定で使用します。 Microsoft Windows [Version 10.0.19041.685]
実行例5:WindowのGUIアプリを起動する
$ notepad.exe # フォアグラウンドで実行 $ notepad.exe & # バックグランドで実行
Windowsのターミナルに切り替える
コマンドプロンプト(cmd)に切り替える:
$ cmd.exe
Power Shellに切り替える:
$ powershell.exe
何れの場合も、
exit
コマンドで終了してLinuxターミナルに戻ります。
環境変数の共有
WSL2には、Windows と Linux の両方で使用できる環境変数
WSLENV
があります。WSLENV
はWindows と Linux の双方で共有される特殊な環境変数です。PowerShell:
PS C:\Users\sunlight> echo $env:WSLENV WT_SESSION::WT_PROFILE_ID
Bash:
$ echo $WSLENV WT_SESSION::WT_PROFILE_ID
WSLENV
の内容は、Windows と Linux の間で引き継ぎたい環境変数が:
で区切られて列挙されています。例えば上の例の、WT_PROFILE_ID
を双方のシェルで確認してみると以下のようになっています。PowerShell:
PS C:\Users\sunlight> echo $env:WT_PROFILE_ID {61c54bbd-c2c6-5271-96e7-009a87ff44bf}
Bash:
$ echo $WT_PROFILE_ID {048a85e4-0278-5ae1-8add-531a3d3eb4ac}
環境変数
WT_PROFILE_ID
の内容は、ディストリビューションのGUIDです。以下のタイミングで環境変数の引継ぎが行われます:
- Win32からWSLプロセスを起動するとき
- WSLからWin32プロセスを起動するとき
この相互運用性は地味なものに見えますが、WindowsとLinuxの双方でシームレスにデータを利用するアプリケーションにとっては非常に便利な機能だと思います。本編では、
WSLENV
についての説明は、紹介程度に留めておきたいと思います。詳細は以下を参照して下さい:
wsl2/interop.txt · 最終更新: 2020/12/27 20:17 by y2sunlight
コメント
https://www.nike-outletstores.us.com/ https://www.nikeoutletstoreonline-shopping.us.com/ https://www.ferragamosshoes.us.com/ https://www.nike-clearance.us.com/ https://www.adidassneakers.us.com/ https://www.nikefreerun.us.org/ https://www.airforce-1.us.org/ https://www.vansshoes-outlets.us.com/ https://www.pandoracom.ca/ https://www.pandorascharm.us.com/ https://www.jordan4s.us.com/ https://www.jordansretro13.us.com/ https://www.pandoracanadajewelrycharms.ca/ https://www.newshoes2019.us/ https://www.airjordans.com.co/ https://www.airmax2019.us.org/ https://www.nikeairmax720.us.org/ https://www.lebronjamesshoessale.us.com/ https://www.redbottomslouboutinshoes.us/ https://www.pandora-earrings.us/ https://www.airjordan14.us.com/ https://www.lebron16shoes.us/ https://www.redbottomshoes-forwomen.us/ https://www.nikeoutletstoreclearance.us.com/ https://www.nikefactorystoreonline.us.com/ https://www.nikeshoesonlines.us.com/ https://www.nikeoutletstores.us.org/ https://www.nike-airmax98.us/ https://www.nikeshoescybermondayblackfriday.us.com/ https://www.airjordanshoesretros.us.com/ https://www.nikehuaraches.us.com/ https://www.nike--shoes.us.com/ https://www.menwomenshoes.us/ https://www.jordanaj1.us.com/ https://www.airjordanssneakers.us.org/ https://www.jordan7.us.com/ https://www.nikeair-max.us.org/ https://www.nike-zoom.us.com/ https://www.ultra-boosts.us.com/ https://www.shoesyeezy.us.com/ https://www.airjordan1mid.us.com/ https://www.cheapnikesshoes.us.com/ https://www.christianlouboutins-outlet.us.com/ https://www.lebron16shoes.us.org/ https://www.nike-basketballshoes.us.org/ https://www.nikefactorys.us/ https://www.nikeoutletstoreonlines.us.com/ https://www.yeezysboosts.us.com/ https://www.nikeshoesfactorystore.us.com/ https://www.nikeshoesshop.us.com/ https://www.newjordanscomingout.us.com/ https://www.airmax-98.us.com/ https://www.airjordan11.us.org/ https://www.pandorasjewelryoutlet.us.com/ https://www.nikecortez.us.org/ https://www.runningshoesformenwomen.us/ https://www.charmsbracelet.uk.com/ https://www.jordan-retro4.us.com/ https://www.nikecortezshox.us.com/ https://www.jordanshoesforkids.us/ https://www.christian-louboutinoutletsale.us.com/ https://www.pandorascharmsjewelry.us/ https://www.nike-jordan1.us.com/ https://www.charmsjewelryrings.uk.com/ https://www.kyrie-irvingshoes.us.org/ https://www.pandorabracelets-clearance.us.com/ https://www.air-jordan10.us.com/ https://www.louboutinshoess.us/ https://www.nikestores.us.org/ https://www.pandorabraceletsforwomen.us/ https://www.nikefactory-outlet.us.org/ https://www.adidasultra-boosts.us.com/ https://www.nikeairzooms.us.com/ https://www.yeezys-adidas.us.com/ https://www.nikeairmax720.us.com/ https://www.nikefreernrun.us.com/ https://www.jordan32shoes.us/ https://www.sneakerswebsite.us/ https://www.valentinoshoessale.us.com/ https://www.nikesneakerssale.us.com/ https://www.airjordan-retro11.us.com/ https://www.christianslouboutin.us.com/ https://www.adidas-nmds.us.org/ https://www.red-bottomheels.us/ https://www.nikeshoes2019.us.com/ https://www.max97trainers.uk.com/ https://www.jordan1s.us.org/ https://www.nikestorefactory.us.com/ https://www.nikeshoesclearance.us.com/ https://www.louboutinheelsshoes.us.com/ https://www.airforce1shoes.us.com/ https://www.uncjordan1.us.com/ https://www.nike-runningshoes.us/ https://www.moncleroutletuk.uk.com/ https://www.kyrieirvingbasketballshoes.us.com/ https://www.nikes-sneakers.us.com/ https://www.asicsshoesoutlet.us.com/ https://www.nikeairforce.us.org/ https://www.jordanretroshoes.us.org/ https://www.nike-outletstoreonlineshopping.us.com/ https://www.airjordans-sneakers.us/ https://www.nikeoutletonline-store.us.com/ https://www.golden-gooses.us.com/ https://www.nikereactuptempo.us.com/ https://www.nike-stores.us.org/ https://www.pandoracharmscom.us/ https://www.jordan11gammablue.us/ https://www.lebron-jamesshoes.us.org/ https://www.red-bottomshoesforwomen.us.com/ https://www.pandorashop.ca/ https://www.outletstoreonlineshopping.us/ https://www.yeezy500.us.org/ https://www.yeezyboosts-350.us.com/ https://www.pandoranecklaces.us/ https://www.jordan1high.us.com/ https://www.newnikeshoes.us.org/ https://www.pandorajewelryofficialwebsite.us/ https://www.air-max95.us.com/ https://www.nikeair-jordan.us.com/ https://www.air-jordans1.us.com/ https://www.fjallravenbackpack.us/ https://www.nike-presto.us.com/ https://www.pandoras.us.org/ https://www.jordansshoesformen.us.com/ https://www.nikeoutletonlineclearance.us.com/ https://www.jordan3.us.com/ https://www.jewelrycharms.us/ https://www.jordansretro11.us.com/ https://www.nikeshoess.us.org/ https://www.shoes-yeezy.us.com/ https://www.fjallravenkankenbackpack.us/ https://www.nikeoutlet-factory.us.com/ https://www.nmdr1adidas.us.com/ https://www.airforceones.us.com/ https://www.nikesclearance.us/ https://www.jewelrycharmsrings.uk.com/ https://www.airjordan9.us.com/ https://www.christianlouboutins.uk.com/ https://www.nikesneakersoutlet.us.org/ https://www.kevin-durantsshoes.us.com/ https://www.air-jordansretro.us.com/ https://www.nikeair-max270.us/ https://www.yeezyscheap.us.com/ https://www.air-jordan8.us.com/ https://www.christianlouboutins.us.org/ https://www.jordans13retro.us/ https://www.jordan12s.us.com/ https://www.new-nikeshoes.us.com/ https://www.nikeshoesfactorys.us.com/ https://www.ferragamobelts.us.com/ https://www.nikebasketball-shoes.us.com/ https://www.yeezyshoess.us.com/ https://www.michael-jordanshoes.us.com/ https://www.jewelrynecklacerings.uk.com/ https://www.nikerunning-shoes.us.com/ https://www.pandora-jewelryrings.us/ https://www.christianlouboutinshoessaleoutlet.us/ https://www.nikeoutletstore-onlineshopping.us.org/ https://www.christian-louboutin-shoes.us.org/
https://www.nikeair-maxs.us.com/ https://www.retro-jordans.us/ https://www.jordan1universityblue.us.com/ https://www.jacketsmoncleroutlet.us.com/ https://www.airjordan11s.us.com/ https://www.nikeoutletshoes.us.com/ https://www.canadapandoracharms.ca/ https://www.mensnikeshoes.us.com/ https://www.jordans1s.us.com/ https://www.airjordan3s.us/ https://www.monclervest.us.com/ https://www.jordanretro-11.us.com/ https://www.pandoracanadajewelry.ca/ https://www.air-jordan6.us.com/ https://www.nikeoutletstoresonlineshopping.us.com/ https://www.airmax270s.us.com/ https://www.adidasyeezysneakers.us.com/ https://www.jordan11ssneakers.us/ https://www.ferragamos.us.org/ https://www.soccercleats.us.com/ https://www.eccos.us.com/ https://www.nikesales.us.com/ https://www.fitflop-shoes.us.org/ https://www.airjordansneakers.us.com/ https://www.christian-louboutinheels.us.com/ https://www.jordan13s.us/ https://www.goldengoosesales.us.com/ https://www.jordan-8.us/ https://www.newjordan11.us/ https://www.jamesharden-shoes.us.org/ https://www.airjordan1s.us.org/ https://www.jordansshoesforsale.us.com/ https://www.airjordan6rings.us/ https://www.jordans4retro.us/ https://www.vanscom.us.com/ https://www.jordanshoesretro.us.com/ https://www.jordan10.us.com/ https://www.ggdbsneakers.us.com/ https://www.nikesnkrs.us.com/ https://www.air-jordan12.us/ https://www.nikesfactory.us.com/ https://www.newnikeshoes.us.com/ https://www.airjordan5.us/ https://www.jordan14.us.com/ https://www.airmax-95.us.com/ https://www.huarachesnike.us.com/ https://www.monclercom.us.com/ https://www.retrosairjordan.us/ https://www.nike-jordans.us.com/ https://www.redbottomshoesforwomen.us.com/ https://www.retrosjordans.us/ https://www.air-jordansneakers.us/ https://www.nike-airmax2018.us.com/ https://www.pandoraonline.us/ https://www.adidasnmdr1.us.org/ https://www.balenciagatriples.us.org/ https://www.jordans-11.us/ https://www.christianslouboutinshoes.us.com/ https://www.nikeoutletfactorys.us.com/ https://www.pandoraringssite.us/ https://www.ggdbs.us.com/ https://www.birkin-bag.us.com/ https://www.goldengoosessneakers.us.com/ https://www.nikeair-jordan1.us.com/ https://www.yeezys.com.co/ https://www.yeezys-shoes.us.org/ https://www.redbottomslouboutin.us.org/ https://www.new-jordans.us.com/ https://www.balenciagaofficial.us.com/ https://www.nikeairjordan.us.com/ https://www.jordan13.us.org/ https://www.nikeofficialwebsite.us.com/ https://www.jordanshoess.us.com/ https://www.air-max90.us.com/ https://www.outletgoldengoose.us.com/ https://www.christianslouboutin.uk.com/ https://www.valentinosshoes.us.org/ https://www.yeezy.us.org/ https://www.jordan12retros.us/ https://www.nike--shoes.us.com/ https://www.jordan-12.us.com/ https://www.air-jordan4.us.com/ https://www.goldengoosemidstar.us.com/ https://www.jordans1.us.com/ https://www.jordansretro3.us/ https://www.pandorasjewelry.us.com/ https://www.fjallraven-kanken.us.com/ https://www.redbottomshoeslouboutin.us.com/ https://www.pandoras.us.com/ https://www.pandorascharms.us.com/ https://www.outletnikestore.us.com/ https://www.pandorajewelryofficial-site.us/ https://www.nikeshoesforwomens.us.com/ https://www.jordan1lows.us.com/ https://www.jordansneakerss.us/ https://www.goldengoosesneakerss.us.com/ https://www.airjordansnew.us.com/ https://www.jordan5.us.com/ https://www.ggdbshoes.us.com/ https://www.jordan-retro1.us.com/ https://www.asics-running-shoes.us.com/ https://www.jordanretro11mens.us/ https://www.nikesoutletstoreonlineshopping.us.com/ https://www.adidasyeezysshoes.us.com/ https://www.airjordanretro11.us.com/ https://www.jordan-shoesformen.us.com/ https://www.airmax270.us.org/ https://www.jordansretro12.us/ https://www.nmds.us.com/ https://www.jordan-retro6.us/ https://www.goldengooseshoess.us.com/ https://www.pandorajewelryofficialsite.us.com/ https://www.goldengooseoutletfactory.us.com/ https://www.jordan-4.us.com/ https://www.airjordanshoess.us.com/ https://www.jordans-4.us/ https://www.jordan9.us.com/ https://www.christianlouboutinshoesinc.us.com/ https://www.monclerstores.us.com/ https://www.monclerjacketsstore.us.com/ https://www.pandora-braceletcharms.us/ https://www.nikeshoesoutletfactory.us.com/ https://www.sneakersgoldengoose.us.com/ https://www.air-jordans11.us.com/ https://www.nikeshoes-cheap.us.com/ https://www.jordan1.us.com/ https://www.newjordansshoes.us.com/ https://www.goldensgoose.us.com/ https://www.jordans5.us/ https://www.louboutinshoesheels.us.com/ https://www.air-jordan1s.us.com/ https://www.jordans-sneakers.us.com/ https://www.shoeslouboutin.us.com/ https://www.coatsmoncler.us.com/ https://www.jordanretros.us.com/ https://www.jordan11low.us.com/ https://www.air-jordan6.us/ https://www.pandorajewellery.us.com/ https://www.nikeairmax98.us/ https://www.lebron-shoes.us.com/ https://www.jordan11red.us.com/ http://www.pandorarings.us.com/ https://www.airjordan4s.us/ https://www.nikefactoryoutlets.us.org/ https://www.jordan11sshoes.us/ https://www.jordan12retro.us.com/ https://www.yeezys-shoes.us.com/ https://www.air-jordanssneakers.us/ https://www.jordanscheapshoes.us/ https://www.jordans11.us.com/ https://www.airforceoneshoes.us.com/ https://www.nikeairmax-shoes.us.com/ https://www.yeezyonline.us.com/ https://www.kyrieirving-shoes.us.org/
You have the ability to write a variety of texts. I respect your opinion. Your article made the work I'm working on easier. I'll come back to read your post when I'm done. 메이저놀이터