как обнаружить заблокированный адрес из php

так вот моя проблема; мы пытаемся настроить facebook как и твиттер кнопку твит на нашем сайте, но это заставляет браузеры не реагировать, когда facebook и твиттер блокируются на своих компьютерах. так что я хотел бы сделать, это определить, заблокированы ли facebook или твиттер, а затем удалить кнопки для этих компьютеров, а также разрешить всем другим загружать их.

возможно ли это в php или в javascript?

я не смог найти какую-либо информацию о тестировании, если ссылка заблокирована или нет.

Solutions Collecting From Web of "как обнаружить заблокированный адрес из php"

Вы могли бы наложить две скрытые изображения на свою страницу, а затем добавить кнопки «на лету».
Что-то вроде этого должно работать:

<img style="display:none;" onload="user_can_access_facebook()" onerror="no_access_to_facebook()" src="http://img.ruphp.com/php/kk8dc2UJYJ4.png" /> 

Если функция javascript user_can_access_facebook() должна добавить подобную кнопку в DOM.

( http://img.ruphp.com/php/kk8dc2UJYJ4.png – это URL-адрес логотипа Facebook на странице входа. Это может быть не статическая ссылка, поэтому вам может понадобиться найти другой статический ресурс для проверки.)

Для твиттера вы должны сделать то же самое.

Редактировать:
Я собрал небольшой POC:

 <html> <head> <script language="javascript" type="text/javascript"> function user_can_access(sitename) { var siteDiv = document.getElementById(sitename + '_access'); siteDiv.innerText = "You have access to " + sitename; } function no_access(sitename) { var siteDiv = document.getElementById(sitename + '_access'); siteDiv.innerText = "You do NOT have access to " + sitename; } </script> </head> <body> <img src="http://img.ruphp.com/php/kk8dc2UJYJ4.png" onload="user_can_access('Facebook')" onerror="no_access('Facebook')" style="display:none;" /> <img src="http://img.ruphp.com/php/twitter-logo-no-bird.png" onload="user_can_access('Twitter')" onerror="no_access('Twitter')" style="display:none;" /> <div id="Facebook_access"></div> <div id="Twitter_access"></div> </body> </html> 

Чтобы попробовать локально, просто заблокируйте доступ к соответствующему домену выше (static.ak.fbcdn.net и support.twitter.com).
Как указано выше, вам может потребоваться найти другие ресурсы, которые статические для проверки. Если URL-адреса для изображений меняются на facebook и twitter, тогда вы также должны изменить его в своем коде.

Вы можете попробовать загрузить Javascript img или другой ресурс из twitter / facebook и посмотреть, действительно ли он загружается, а затем попросите AJAX сообщить серверу, что он не работает.

Но что касается PHP, то нет возможности рассказать, какие соединения клиентская машина может сделать.

Чтобы управлять этим в PHP, вам нужно будет сначала определить, есть ли у них доступ, используя метод изображения JavaScript на странице загрузки, а затем выполнить перенаправление javascript

 document.location="/index.php?TwitterBlocked=true"; 

На основе параметра get вы можете затем вставить код, чтобы отображать кнопки.

Однако весь этот подход уродлив. Код кнопки, предоставляемый этими социальными сайтами, используется в Интернете, и если вы загружаете их как самый последний бит JavaScript при загрузке документа, то не должны иметь производительность на вашем сайте.