PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 28.3
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v28.3
28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 19.1 All 128 releases
wordpress-seo / admin / tracking / class-tracking-server-data.php

class-tracking-server-data.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI 28.3, at admin/tracking/class-tracking-server-data.php

87 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * WPSEO plugin file.
4 *
5 * @package WPSEO\Admin\Tracking
6 */
7
8 /**
9 * Represents the server data.
10 */
11 class WPSEO_Tracking_Server_Data implements WPSEO_Collection {
12
13 /**
14 * Returns the collection data.
15 *
16 * @return array The collection data.
17 */
18 public function get() {
19 return [
20 'server' => $this->get_server_data(),
21 ];
22 }
23
24 /**
25 * Returns the values with server details.
26 *
27 * @return array Array with the value.
28 */
29 protected function get_server_data() {
30 $server_data = [];
31
32 // Validate if the server address is a valid IP-address.
33 $ipaddress = isset( $_SERVER['SERVER_ADDR'] ) ? filter_var( wp_unslash( $_SERVER['SERVER_ADDR'] ), FILTER_VALIDATE_IP ) : '';
34 if ( $ipaddress ) {
35 $server_data['ip'] = $ipaddress;
36 $server_data['Hostname'] = gethostbyaddr( $ipaddress );
37 }
38
39 $server_data['os'] = function_exists( 'php_uname' ) ? php_uname() : PHP_OS;
40 $server_data['PhpVersion'] = PHP_VERSION;
41 $server_data['CurlVersion'] = $this->get_curl_info();
42 $server_data['PhpExtensions'] = $this->get_php_extensions();
43 $server_data['ServerSoftware'] = isset( $_SERVER['SERVER_SOFTWARE'] ) ? sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ) : '';
44
45 return $server_data;
46 }
47
48 /**
49 * Returns details about the curl version.
50 *
51 * @return array|null The curl info. Or null when curl isn't available..
52 */
53 protected function get_curl_info() {
54 if ( ! function_exists( 'curl_version' ) ) {
55 return null;
56 }
57
58 $curl = curl_version();
59
60 $ssl_support = true;
61 if ( ! $curl['features'] && CURL_VERSION_SSL ) {
62 $ssl_support = false;
63 }
64
65 return [
66 'version' => $curl['version'],
67 'sslSupport' => $ssl_support,
68 ];
69 }
70
71 /**
72 * Returns a list with php extensions.
73 *
74 * @return array Returns the state of the php extensions.
75 */
76 protected function get_php_extensions() {
77 return [
78 'imagick' => extension_loaded( 'imagick' ),
79 'filter' => extension_loaded( 'filter' ),
80 'bcmath' => extension_loaded( 'bcmath' ),
81 'pcre' => extension_loaded( 'pcre' ),
82 'xml' => extension_loaded( 'xml' ),
83 'pdo_mysql' => extension_loaded( 'pdo_mysql' ),
84 ];
85 }
86 }
87