---
name: "DBIx::Class::InflateColumn::IP"
section: "3pm"
platform: "linux"
package: "libdbix-class-inflatecolumn-ip-perl"
version: "0.02003-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/DBIx::Class::InflateColumn::IP"
---

# DBIx::Class::InflateColumn::IP(3pm)

Auto-create NetAddr::IP objects from columns.

## NAME

DBIx::Class::InflateColumn::IP - Auto-create NetAddr::IP objects from columns.

## SYNOPSIS

Load this component and declare columns as IP addresses with the appropriate format.

```
    package Host;
    __PACKAGE__->load_components(qw/InflateColumn::IP Core/);
    __PACKAGE__->add_columns(
        ip_address => {
            data_type => 'bigint',
            is_nullable => 0,
            is_ip => 1,
            ip_format => 'numeric',
        }
    );
    package Network;
    __PACKAGE__->load_components(qw/InflateColumn::IP Core/);
    __PACKAGE__->add_columns(
        address => {
            data_type => 'varchar',
            size        => 18
            is_nullable => 0,
            is_ip => 1,
            ip_format => 'cidr',
        }
    );
```

Then you can treat the specified column as a NetAddr::IP object.

```
    print 'IP address: ', $host->ip_address->addr;
    print 'Address type: ', $host->ip_address->iptype;
```

DBIx::Class::InflateColumn::IP supports a limited amount of auto-detection of the format based on the column type. If the type begins with `"int"` or `"bigint"`, it's assumed to be numeric, while `"inet"` and `"cidr"` (as used by e.g. PostgreSQL) are assumed to be `"cidr"` format.

## METHODS

### ip\_class

- Arguments: $class

  Gets/sets the address class that the columns should be inflated into. The default class is NetAddr::IP.

### ip\_format

- Arguments: $format

  Gets/sets the name of the method used to deflate the address for the database. This must return a value suitable for `"$ip_class-"`**new()**; The default format is `"addr"`, which returns the address in dotted-quad notation. See "Methods" in NetAddr::IP for suitable values.

### register\_column

Chains with "register\_column" in DBIx::Class::Row, and sets up IP address columns appropriately. This would not normally be called directly by end users.

## AUTHOR

Dagfinn Ilmari Mannsåker, `"<ilmari at ilmari.org>"`

## BUGS

Please report any bugs or feature requests to `"bug-dbix-class-inflatecolumn-ip at rt.cpan.org"`, or through the web interface at \<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=DBIx-Class-InflateColumn-IP\>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

## SUPPORT

You can find documentation for this module with the perldoc command.

```
    perldoc DBIx::Class::InflateColumn::IP
```

You can also look for information at:

- •

  AnnoCPAN: Annotated CPAN documentation

  \<http://annocpan.org/dist/DBIx-Class-InflateColumn-IP\>

- •

  CPAN Ratings

  \<http://cpanratings.perl.org/d/DBIx-Class-InflateColumn-IP\>

- •

  RT: CPAN's request tracker

  \<http://rt.cpan.org/NoAuth/Bugs.html?Dist=DBIx-Class-InflateColumn-IP\>

- •

  Search CPAN

  \<http://search.cpan.org/dist/DBIx-Class-InflateColumn-IP\>

## SEE ALSO

DBIx::Class, NetAddr::IP

## COPYRIGHT & LICENSE

Copyright 2007 Dagfinn Ilmari Mannsåker, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
