РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
95 of 1392 menu

Поле ipAddress

Метод ipAddress применяется к схеме таблицы в миграциях Laravel и создает колонку для хранения IP-адресов. Данный метод создает поле типа VARCHAR с длиной 45 символов, что достаточно для хранения как IPv4, так и IPv6 адресов. Метод не принимает никаких параметров и автоматически устанавливает правильную длину строки.

Синтаксис

<?php Schema::create('table_name', function (Blueprint $table) { $table->ipAddress('column_name'); }); ?>

Пример

Давайте создадим таблицу для хранения информации о пользовательских сессиях с полем для IP-адреса:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up() { Schema::create('sessions', function (Blueprint $table) { $table->id(); $table->ipAddress('ip_address'); $table->string('user_agent'); $table->timestamps(); }); } public function down() { Schema::dropIfExists('sessions'); } }; ?>

Результат выполнения миграции:

"Table 'sessions' created successfully with 'ip_address' column"

Пример

Теперь создадим модель для работы с данными сессий и сохраним запись с IP-адресом:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Session extends Model { protected $fillable = [ 'ip_address', 'user_agent', ]; } ?>
<?php use App\Models\Session; use Illuminate\Http\Request; Route::post('/session', function (Request $request) { $session = new Session(); $session->ip_address = $request->ip(); $session->user_agent = $request->userAgent(); $session->save(); return response()->json(['message' => 'Session saved']); }); ?>

Результат выполнения кода:

{ "message": "Session saved" }

Пример

Давайте получим все сессии с определенного IP-адреса:

<?php use App\Models\Session; Route::get('/sessions/ip', function () { $ipAddress = '192.168.1.1'; $sessions = Session::where('ip_address', $ipAddress)->get(); $res = []; foreach ($sessions as $session) { $res[] = $session->user_agent; } return response()->json($res); }); ?>

Результат выполнения кода:

[ "Mozilla/5.0 (Windows NT 10.0; Win64; x64)", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)", "Mozilla/5.0 (X11; Linux x86_64)" ]

Смотрите также

  • поле string,
    которое создает строковое поле в таблице
  • поле text,
    которое создает поле для длинного текста
  • поле macAddress,
    которое создает поле для MAC-адресов
  • поле timestamps,
    которое создает поля created_at и updated_at
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить